Как я могу сделать копию файла, удаляющего весь пробел (таким образом, новый файл не имеет никакого пробела),

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

1
задан 25 January 2018 в 17:04

2 ответа

Обработка текста с оболочкой является медленной. Необходимо использовать утилиту обработки текста для этого. Например, Вы могли использовать sed

Удалите весь горизонтальный пробел:

sed 's/\s//g' file > output

Удалите весь горизонтальный пробел и пустые строки или строки только с пробелом:

sed 's/\s//g;/^$/d' file > output

Удалите весь пробел любого вида постоянно, включая все новые строки

sed ':a;s/\s//g;N;s/\n//;ba' file > output

Примечания:

  • s/\s//g ничем замените любой горизонтальный пробельный символ, соответствуя каждому пробельному символу на строке (g средства все соответствия на строке)
  • ; отделяется sed команды
  • /^$/ пустая строка
  • d удалите пространство шаблона
  • :a маркировка - выполняется отсюда
  • N считайте следующую строку в пространство шаблона
  • \n новая строка в пространстве шаблона
  • ba перейдите для маркировки :a и выполнитесь снова
1
ответ дан 7 December 2019 в 12:30

Удалить все горизонтальные пробельные символы (т.е. пробелы и горизонтальные вкладки)

tr -d '[:blank:]' < file > newfile

Удалить все пробельные символы (включая новые строки и вертикальные вкладки)

tr -d '[:space:]' < file > newfile

Обратите внимание, что это оставит файл без его переданного под мандат POSIX завершающегося разрыва строки: посмотрите, например, Почему текстовые файлы должны закончиться новой строкой?

2
ответ дан 7 December 2019 в 12:30

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

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