Много эмуляторов терминала поддерживают две копии терминального вывода: нормальный экранный буфер и альтернативный экранный буфер. Нормальный буфер для приложений командной строки, которые обычно не перемещают курсор вне текущей строки, и обеспечивает scrollback. Альтернативный буфер для полноэкранных приложений и не обеспечивает scrollback.
Взгляд, vi и другие переключаются на альтернативный экран, когда они запускают и переключаются назад, когда они выходят.
В xterm Вы видите устаревший экран путем переключения “Выставочного Экрана Альтернативы” в меню средней кнопки мыши.
Из сценария можно получить управляющую последовательность для переключения между экранами с tput smcup
и tput rmcup
(smcup
и rmcup
terminfo возможности состоят в том, чтобы переключиться в и из полноэкранного режима).
Самый простой способ - использовать grep -v
команду:
grep -v "Продукты ниже" вашего_файла. csv > new_file.csv
Если мы можем смело предположить, что вы хотите удалить все строки, начинающиеся с Products
(включая пробел после 1-го слова), то все это сработает:
awk
awk '$1!= "Файл продукта" > новый файл
perl
perl -ne "print unless /^Products/" file > new file
или
perl -ane 'print if $F[0]!= "Products" file > new file
или, чтобы отредактировать файл на месте
perl -i -ne 'печатать, если /^Products/; ' file
perl -i -ane 'print if $F[0]!= файл "Products" (Продукты)
grep (это всего лишь укороченная версия ответа svq)
grep -v ^Products file > new file
bash (просто для удовольствия)
во время чтения строки; do [[ $line =~ ^Products ]]] || echo $line; готово < file > new file
С Вашими входными данными Вы можете попробовать:
$ sed '/^Products/d' file
Number, month, year, reference, store
1,1,2014,13322,main
2,2,2014,13322,main
3,3,2011,1322,main
4,4,2012,3322,main
5,4,2013,122,secondary
12,411,2010,122,Albany
25,41,2009,122,Dallas
35,24,2008,122,New
Используя sed -i. bak
для редактирования файла на месте и создания резервной копии:
sed -i.bak '/^Products/d' file
на месте с ed
(в подсказке bash
)
ed -s file <<<$'/Products below/d\nw'
Или как don crissti рекомендует:
ed -s file <<<$'/Products below/d\nw\nq'
Можно использовать sed
для поиска шаблона, чтобы удалить каждую строку, содержащую этот шаблон
sed -i '/Products below this line are out of stockNumber, month, year, reference, store/d' file
Вот еще один пример использования sed
:
sed '/^Products below this line are out of stockNumber, month, year, reference, store$/d' originalDocument > newDocument