У меня есть несколько файлов, которые содержат текстовую информацию ascii в первых 5-10 строках, за которыми следуют хорошо табличные данные матрицы В сценарии оболочки я хочу удалить эти первые несколько строк текста, чтобы я мог использовать информацию чистой матрицы в другой программе. Как я могу использовать команды оболочки bash для этого?
Если это поможет, я использую RedHat и Linux-системы Ubuntu.
sed -i -e 1,3d yourfile
. Это ничего не отразит, это просто изменит файл на месте. Если вам не нужно передавать результат в другую команду, это проще.sed -i
специально. Большинство реализаций просто удаляют файл и заменяют его новым, который не работает для ссылок, поскольку в итоге вы оставляете оригинал в другом месте.sed -i '1,3d' file.txt
Это удаляет первые 3 строки из file.txt.
источник
Если в табличных строках есть символы табуляции:
(
␉
будучи буквальным символом табуляции) или эквивалентноВ сценарии bash / ksh / zsh вы можете написать
$'\t'
для вкладки, например,grep $'\t'
илиsed -n $'/\t/p'
.Если вы хотите удалить 10 строк в начале файла:
(обратите внимание, что это
+11
исключить 10 строк, потому что+11
означает «начать со строки 11» и строки с номерами хвостов от 1) илиВ Linux вы можете воспользоваться
-i
опцией GNU sed для изменения файлов на месте:Или вы можете использовать цикл оболочки и временные файлы:
Или, если вы не хотите изменять файлы на месте, а вместо этого дать им другое имя:
источник
Вы можете использовать Vim в режиме Ex:
1
перейти к первой строке5
выберите 5 строкd
удалятьx
сохранить и закрытьисточник
эхо "a \ nb" | sed '1d' # удаляет первую строку
кот list.txt | sed '1d'> list.csv # читать list.txt и писать list.csv без первой строки
Другие полезные команды:
grep '^ |' # находит первый символ (труба |)
sed 's / | // g' # удаляет канал
sed 's / // g' # удаляет пробел
источник
В процентах
Использование
bash
, чтобы очистить файл, используя процентное число вместо абсолютного количества строк:Остерегайтесь, потому что эта команда может быть разрушительной, поскольку она удаляет содержимое на месте, не создавая копию.
Удаляет первые 75% строк из указанного файла.
источник