Как перебрать каждую строку файла, дать имя файлу после третьего поля, а затем взять содержимое каждой строки и поместить его в файл

Перечислите их все и используйте оператор $in:

db.users.remove({_id:{$in:[id1, id2, id3, ... ]}})
-2
задан Nate 17 January 2019 в 06:06
поделиться

1 ответ

У вас есть две конкретные проблемы, но вы не , что далеко.

1) cat для файлов, а не для переменных bash. Вы можете использовать echo для переменных bash.

2) у оператора присваивания = не должно быть пробела слева от него в bash.

Итак, ваша строка 6 теперь выглядит следующим образом:

  var1=`echo $line | awk '{print $4}'`

После этого изменения в моей системе получается файл с именем cat.txt, который имеет тот же текст, что и одна строка в animals.txt

$ ls
animals.txt  q.sh
$ cat animals.txt 
this is a cat this is a dog this is a bear
$ cat q.sh 
#!/bin/bash

while read line
do
  echo $line
  var1=`echo $line | awk '{print $4}'`
  echo $line >> ${var1}.txt
done < animals.txt
$ bash q.sh
this is a cat this is a dog this is a bear
$ cat cat.txt 
this is a cat this is a dog this is a bear
0
ответ дан JawguyChooser 17 January 2019 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: