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