Как я могу удалить первую строку файла с помощью sed?

следующие строки добавляют содержимое essay_i.txt к концу essay1.txt;

touch essay1.txt
for (( i = 1 ; i <= 10 ; i++ )); do
sed '2p' essay_"${i}".txt >> essay1.txt
done

как мне изменить его, чтобы первая строка каждого из essay_i.txt не копировалась ( т.е. только скопировать строку 2-> конец)?

2
задан 7 February 2011 в 20:12

1 ответ

Чтобы подавить первую строку, используйте '1d' (т. Е. Строку 1, удалите):

touch essay1.txt
for file in essay_*; do
  sed '1d' $file >> essay1.txt
done

на выходе будет

~$ cat essay1.txt 
line 2 from essay 1
line 3 from essay 1
line 2 from essay 2
line 3 from essay 2
...

для всех файлов с именем [ 114] в текущем рабочем каталоге.


Вместо использования sed вы также можете использовать tail для выполнения этой работы:

tail -n +2 $file >> essay1.txt

Где +2 означает, начиная со второй строки (-n 2 будет последние две строки).

0
ответ дан 7 February 2011 в 20:12

Другие вопросы по тегам:

Похожие вопросы: