Допустим, у меня есть файл abc.txt , который содержит следующие строки:
a b c /some/path/123/path/120
a c b /some/path/312/path/098
a p t /some/path/123/path/321
a b c /some/path/098/path/123
и numbers.txt :
123
321
123
098
Я хочу напечатать всю строку, содержащую «123» только в третьем месте в « / some / path / 123 / path », я не хочу печататьстрока " acb / some / path / 312 / path " или " abc / some / path / 098 / path / 123 / ".Я хочу сохранить все файлы с «123» на третьем месте в новом файле.
Я пробовал несколько способов, и лучший способ, похоже, использовать awk.Вот мой пример кода, который не работает правильно:
for i in `cat numbers.txt | xargs`
do
cat abc.txt | awk -v i=$i '$4 ~ /i/ {print $0}' > ${i}_number.txt;
done
, потому что он перехватывает, например, " abc /some/path/098/path/123/".
Пример :
Для числа "123" я хочу сохранить только одну строку из abc.txt в 123_number.txt :
a b c /some/path/123/path/120
Для номера "312" я хочу сохранить только одну строку из abc.txt в 312_number.txt :
a c b /some/path/312/path/098