Как я могу удалить первую строку файла с помощью 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-> конец)?

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
...

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


Вместо того, чтобы использовать sedВы также можете использовать tail сделать эту работу:

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

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

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