Чем можно построчно парсить файлы?
Нужно просто брать текстовый файл и построчно его обрабатывать.
Я уже заколебался - и комбинацией head/tail, и for i in $file - должна же быть какая-то шелл-команда или прикладуха - ну знаю, тупой вопрос, но не пойму как эта дрянь может называться!
Напишите, плз, какой ман читать =)
Спасибо!
>Чем можно построчно парсить файлы?
>Нужно просто брать текстовый файл и построчно его обрабатывать.
>Я уже заколебался - и комбинацией head/tail, и for i in $file
>- должна же быть какая-то шелл-команда или прикладуха - ну знаю,
>тупой вопрос, но не пойму как эта дрянь может называться!
>Напишите, плз, какой ман читать =)
>Спасибо!Пример для bash:
(while read i; do echo "Строка: " $i; done) < somefile
Можно еще так:while read STRING;
do
# в переменной STRING находится строка из файла
# ее-то (переменную) и обрабатываем...
done<fileИли так:
cat file | sed '<commands>'
Или этак:
cat file | awk '<commands>'
А чем, собственно, вам не угодили способы, указанные вами?
Они имеют такое же право на существование, как и все остальные,
все зависит от ситуации и предпочтений того, кто ими пользуется.Маны же читайте следующие:
man awk
man sed
man tr
man *grep (grep, egrep, fgrep ...)А еще в каком-нибудь поисковике сделайте запрос "обработка текстов в linux", почитайте и, пожалуй, купите книжку А. Шевеля, на которую вывалится немало ссылок.
P.S.: Оп-паньки, пока писал свой опус, gyn61 успел дать ответ. Прошу плагиатором не считать :-)
Господа, всем большое спасибо!
Буду пробовать!
>А чем, собственно, вам не угодили способы, указанные вами?
>Они имеют такое же право на существование, как и все остальные,
>все зависит от ситуации и предпочтений того, кто ими пользуется.Через head/tail - работает медленно
Через for i in $file - он берет не строки, а слова, и надо очень аккуратно считать пробелы и следить за ними.