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