Удалить определенный номер (номера) линии из текстового файла, используя sed?

Я хочу удалить один или несколько определенных номеров линии из файла. Как я сделал бы это использование sed?

219
задан Justin Ethier 21 January 2010 в 10:08
поделиться

3 ответа

Если вы хотите удалить строки 5-10 и 12:

sed -e '5,10d;12d' file

Это распечатает результаты на экран. Если вы хотите сохранить результаты в тот же файл:

sed -i.bak -e '5,10d;12d' file

Это вернет файл до file.bak и удалите данные строки.

Примечание. Номера линии начинаются с 1. Первая строка файла 1, а не 0.

347
ответ дан 23 November 2019 в 04:10
поделиться

и AWK, а также

awk 'NR!~/^(5|10|25)$/' file
25
ответ дан 23 November 2019 в 04:10
поделиться
$ cat foo
1
2
3
4
5
$ sed -e '2d;4d' foo
1
3
5
$ 
16
ответ дан 23 November 2019 в 04:10
поделиться
Другие вопросы по тегам:

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