Короче говоря, я пытаюсь найти значение, содержащееся в первом столбце текстового файла, с помощью переменной.
Вот пример сценария с командой grep, которая не работает:
for ii in `cat list.txt`
do
grep '^$ii' >outfile.txt
done
Содержимое list.txt:
123,"first product",description,20.456789
456,"second product",description,30.123456
789,"third product",description,40.123456
Если я выполню grep '^123' list.txt
, он выдаст правильный результат ... Только первая строка list.txt.
Если я попытаюсь использовать переменную (т.е. grep '^ii' list.txt
), я получаю ошибку «^ ii command not found». Я попытался объединить текст с переменной, чтобы заставить ее работать:
VAR1= "'^"$ii"'"
но переменная VAR1
содержала возврат каретки после переменной $ii
:
'^123
'
Я пробовал подробный список вещей, чтобы удалить cr / lr (например, sed и awk), но безрезультатно. Должен быть более простой способ выполнить команду grep с помощью переменной. Я бы предпочел остаться с командой grep, потому что она отлично работает при выполнении вручную.