2015-03-30 2 views
1
cat swerror.txt | while read Wrapper 
do 
...... 
done 

Привет всем, я хочу прочитать каждую строку в файле, а затем сделать целый URL-адрес, чтобы что-то сделать. Вышеупомянутые скрипты работали, но что является лучшим способом для чтения файла по строкам? Благодарю.Что лучше читать каждую строку в файле в Linux?

+0

Что вы имеете в виду * некоторый прогресс *. Является ли сценарий неправильным или вы хотите, чтобы он стал более эффективным? –

+0

Что вы на самом деле пытаетесь достичь? Если вы хотите проверить весь репозиторий 'svn', вы можете сделать это, используя команду * single *. –

+2

Вызов 'svn checkout' на каждой итерации цикла займет намного больше времени, чем неэффективное чтение файла по строкам. Непонятно, что вы спрашиваете. Пожалуйста, отредактируйте, чтобы уточнить, что вы хотите. –

ответ

3

Это хороший пример useless use of cat, просто использовать IO Перенаправление:

while read -r Wrapper 
do 
    ... 
done < swerror.txt 

Использование -r в read объясняется here.

Это экономит ваше творение трубы и процесса (cat) и, таким образом, будет более эффективным. Хотя, как говорит @TomFenech, svn (внутренняя команда цикла, которую вы впервые дали), вероятно, будет доминирующим фактором, поскольку для этого требуется сетевой трафик. И вообще, в большинстве случаев время работы не улучшится, оптимизируя трубы и т. Д.

+0

Это также позволяет использовать переменные внутри цикла и ссылаться на них за его пределами. –

+0

@JID: действительно благодаря TomFenech и JID для улучшения этого ответа ... –

Смежные вопросы