LINUX.ORG.RU

Как получить строку


0

0

Прошу сильно не пинать. Только начиная программировать в bash. Есть текстровой файл со строками. Как мне получать строки друг за другом на bash??? Экперементировал с grep и awk - получаю на выходе целиком файл. Мне нужно обработать файл /etc/ppp/chap-secrets для того чтобы выделить юзеров. Каждый юзер начинается со своей строки. Вот в этом у меня и загвоздка. Прошу помочь!

TexIS

anonymous

Пример с redirection:

while read l_str ; do
   ...
   $l_str   #Содержит одну строку из my_file
   ...
done < <my_path>/<my_file>


Пример со связкой "генератор-фильтр":

cat <my_path>/<my_file> | [any_filter_if_you_need] | while read l_str 
do
   ...
   $l_str   #Содержит одну строку из my_file
   ...
done 

Виталий.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, Виталий!
При использовании Ваших заготовок выявились следующие трудности.
Имеем 2 скрипта:
1) с redirection
while read l_str ; do
$l_str
echo $l_str
done my.txt
Этот скрипт совсем не срабатывает. Выдает ошибку в строке 6. Говорит следующее: syntax error near unexpected token 'my.txt'. Не могли бы Вы объяснить почему так.
2) со связкой "генератор-фильтр"
cat my.txt | while read l_str
do
$l_str #Содержит одну строку из my_file
echo $l_str
done
Этот скрипт срабытывает. Но при выводе переменной на экран в ней оказывются помимо текста из файла my.txt еще и содержимое текущего каталога. Тут я вообще в растерянности. Очень прошу помочь.

С уважением TexIS

anonymous
()
Ответ на: комментарий от anonymous

Привет!

Проблема в использовании заготовок. Строки "$l_str" и "$l_str #Содержит одну строку из my_file" лишние.

Вот реальныe скрипты:

#1 while read l_str; do echo $l_str done < my.txt ## <--- Очепятка: забыл redirection "<"

#2 cat my.txt | while read l_str do echo $l_str done

Успехов, Виталий.

anonymous
()
Ответ на: комментарий от anonymous

Упс... лажанулся с форматом

#1 
while read l_str; do 
   echo $l_str 
done < my.txt ## <--- Очепятка: забыл redirection "<" 

#2 
cat my.txt | while read l_str 
do 
   echo $l_str 
done 

Виталий.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.