Я пытаюсь написать скрипт, который анализирует поля в программе и выводит их на стандартный вывод.
Данные входного файла выглядят так
поле1 поле2
Поля разделены вкладками
Первоначально я пытался написать это в AWK.
cat test.txt | while read line; do entity=`awk -F "\t" '{print $2}'`;echo $entity; done
Это прекрасно работает в командной строке.
Но когда я пытаюсь сделать то же самое в программе оболочки, как показано ниже
while read line
do
entity=`echo $line|awk -F \t '{print $2}'`
echo $entity
done<"test.txt"
Причина в том, что echo $ line на самом деле печатает вкладки в виде пробелов. Я не могу использовать пробелы, потому что поля могут содержать пробелы.
Затем я попытался написать, используя cut.
while read line
do
entity=`echo $line|cut -f5`
echo $entity
done<"test.txt"
Опять та же проблема с эхом.
Кто-нибудь сталкивался с подобной проблемой. Любое решение, которое вы можете порекомендовать мне.
Спасибо.
Bala