Я имею дело с одной задачей, где я должен прочитать текстовый файл и принять каждое слово, присутствующее в нем, в качестве входных данных, и важно то, что мне нужно будет сделать это с помощью цикла while или любого другого цикла (без использования команды awk)
Я попробовал это с циклом while, он читает файл, но я не могу понять следующие шаги.
Вот подробности:
[root@localhost ~]# cat content.txt
Rantndeep,old spice,100,20
D-mart,toothbrush,30,20
more,sack,300,10
[root@localhost ~]# sh parser.sh
Today I went to Rantndeep Store bought old spice For Rs. 100 And paid 20 Rs.as a parking charges
Today I went to D-mart Store bought toothbrush For Rs. 30 And paid 20 Rs.as a parking charges
Today I went to more Store bought sack For Rs. 300 And paid 10 Rs.as a parking charges
[root@localhost ~]# cat p.sh
#/bin/bash
cat content.txt | while read a
do
echo $a
done
Это только печать содержимого файла, как указано выше. Я хочу написать сценарий, используя любой цикл, чтобы я мог получить вывод как
[root@localhost ~]# sh parser.sh
Today I went to Rantndeep Store bought old spice For Rs. 100 And paid 20 Rs.as a parking charges
Today I went to D-mart Store bought toothbrush For Rs. 30 And paid 20 Rs.as a parking charges
Today I went to more Store bought sack For Rs. 300 And paid 10 Rs.as a parking charges
не могли бы вы уточнить, что я новичок в этом мире.
Пожалуйста, просмотрите этот пост один раз для ознакомления meta.stackexchange.com/questions/51144/…
@SKuser: вы также должны определить, что такое слово. Например, являются ли abc,def
и x100
одним словом или двумя соответственно?
@SKuser: Как насчет замены cat content.txt
на fmt -1 content.txt
?
@ user1934428 Реализовано :) .....Спасибо всем за руководство!!!
Вы почти у цели. Обратите внимание, что вы можете использовать read
для установки более одной переменной. Пытаться
IFS=, # Because you separate the items using comma instead of space
while read w1 w2 w3 w4
do
echo "first word: $w1 second word: $w2 last word: $w4"
done < content.txt
вы увидите, что на каждой итерации w1
... w4
содержат 4 поля соответствующей строки в content.txt
Пожалуйста, цитируйте свои строки. Возможно, однажды вы прочтете переменную *
из $(rm *)
.
@WalterA: г.м. не повредит, потому что эхо все равно не выполнит код. Аргумент *
действителен. Я обновил свой ответ соответственно. Поскольку я обычно работаю с Zsh, я всегда забываю, что нам нужно много цитировать при выполнении bash. Одна из причин, почему я так не люблю bash.
@ user1934428 не могли бы вы помочь мне с моим другим вопросом, пожалуйста, проверьте мой профиль
Пожалуйста, заверните все ваши коды/образцы в CODE TAGS.