Сократите определенные строки файла и вставьте их в конце другого файла

Предположим, что я хочу сократить больше чем один интервал строк из одного файла (например, строки 1-500, 1029-1729 и 2696-3446), добавляя значения в конце другого файла (output.txt) и устраняя эти значения из первого файла. Источник является файлом с 9 277 строками, я хочу сократить некоторых из них, устраняя их из исходного файла и вставляя их в другой файл. Это возможно через командную строку?

0
задан 29 May 2018 в 01:49

2 ответа

Используя sed, можно записать ряд строк в другой файл при удалении его из текущего файла как так:

sed -i -e 'N, M { w output.txt
d }' input.txt

где N и M номера строки. -i опция делает sed сохраните изменения в исходном файле, и здесь d команда удаляет к тем строкам. В то же время, w output.txt заставляет выбранные строки быть записанными в output.txt. И да, это - две отдельных строки: sed требует что w имя файла команды быть до новой строки.

Таким образом, можно сделать что-то как:

cmd=' { w output.txt
d }'
sed -i -e "1,500 $cmd" -e "1029,1729 $cmd" -e "2696,3446 $cmd" input.txt
3
ответ дан 29 October 2019 в 06:00

возможный!

  1. строки копии к dest.file с перенаправленным outout grep 'pattern' src.file >> dest.file

  2. удалите строки из src.file с sed -i '/pattern/d' src.file

1
ответ дан 29 October 2019 в 06:00

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

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