Как удалить пробелы из выбранных строк

У меня есть небольшая проблема в Linux с удалением пробелов из выделенных строк из моего файла.

Например:

fhtsqeghcht fhtrfhvfdgn qazxswedcvf fhbchthbvhf plkoijuhygt tfrdcvbhnju 

и теперь, как я должен удалить пробелы из строк 2, 4 и 5? Кроме того, как это будет искать третью строку?

  • Обработать последнюю строку сначала с помощью awk
  • Поиск заменить в файле XML с помощью sed или awk
  • Команда Git для удаления нескольких удаленных строк из коммитов, которые изначально добавили их
  • Как обернуть две строки в одну строку с разделителем
  • Получать значения по блоку в одном файле
  • Как рассчитать среднее количество столбцов по строкам, а также максимальное количество столбцов в файле в unix?
  • неточный текстовый поиск
  • сравнить два файла и совпадения печати - большие файлы
  • 5 Solutions collect form web for “Как удалить пробелы из выбранных строк”

    Использование awk

    Чтобы удалить пробелы из строк 2, 4 и 5:

     $ awk 'NR==2 || NR==4 || NR==5 {gsub(/ /,"");} 1' file fhtsqeghcht fhtrfhvfdgn qazxswedcvf fhbchthbvhf plkoijuhygt tfrdcvbhnju 

    В awk NR – номер строки. Логическое выражение NR==2 || NR==4 || NR==5 NR==2 || NR==4 || NR==5 NR==2 || NR==4 || NR==5 выбирает интересующие вас линии. Команда gsub(/ /,"") удаляет пробелы из этих строк. Условие 1 является критической стенографией awk для печати строки.

    Использование sed

    Чтобы удалить пробелы из строк 2, 4 и 5:

     $ sed '3n; 2,5 s/ //g' file fhtsqeghcht fhtrfhvfdgn qazxswedcvf fhbchthbvhf plkoijuhygt tfrdcvbhnju 

    Здесь мы используем немного другую логику: мы удаляем пробелы для всех строк от 2 до 5, кроме строки 3. Это работает следующим образом: выражение 3n сообщает sed, что, когда дело доходит до строки 3, распечатайте его и перейдите к следующей строке. В противном случае команда `2,5 s / // g сообщает sed удалять пробелы со всех строк от 2 до 5.

    Чтобы удалить все пробелы, а не просто пробелы

     awk 'NR==2 || NR==4 || NR==5 {gsub(/[[:space:]]/,"");} 1' file 

    Или:

     sed '3n; 2,5 s/[[:space:]]//g' file 

    Другой вариант для awk

     awk 'NR~/^[245]$/{$1=$1}1' OFS='' file 

    Вы можете сделать это с помощью оболочки. В некоторых случаях это даже стоило бы этого сделать. Наверное, не часто.

     sh -fc <in >out ' for IFS do read -rl printf %s $l;echo done; exec cat ' -- '' \ '' \ \ 

     fhtsqeghcht fhtrfhvfdgn qazxswedcvf fhbchthbvhf plkoijuhygt tfrdcvbhnju 

    С perl :

     perl -lpe 'grep { /^$.$/ } (2,4,5) and s/\s//g' 

    или с экспериментальным оператором smartmatch :

     perl -lpe '$. ~~ [2,4,5] and s/\s//g' 

    С awk :

     awk 'NR==2 || NR==4 || NR==5{gsub(/\s/, "")} 1' file 

    Вывод :

      fhtsqeghcht fhtrfhvfdgn qazxswedcvf fhbchthbvhf plkoijuhygt tfrdcvbhnju 

    Кто-то должен был правильно представлять «tr», заявить об этом решение, так что:

      tr -d [:space:] 

    ИЛИ

      tr -d [:blank:] 

    Предполагая, что источником текста является файл ich:

      cat ich | tr -d [:space:] 

    Это создает одну строку, без пробела:

    fhtsqeghchtfhtrfhvfdgnqazxswedcvffhbchthbvhfplkoijuhygttfrdcvbhnju

    Если вы хотите сохранить линии, используйте этот вариант:

      cat ./ich | tr -d [:blank:] 

    который производит этот выход (за вычетом дополнительной строки строки между линиями)

    fhtsqeghcht

    fhtrfhvfdgn

    qazxswedcvf

    fhbchthbvhf

    plkoijuhygt

    tfrdcvbhnju

    Блестящие ответы, мои уважаемые сверстники, каждый!

    F.

    Interesting Posts

    Позволяет просматривать и заполнять файлы из другого каталога

    Возможно ли глобальное определение местоположения журнала java hs_err?

    Как заблокировать yum от обновления устаревшего пакета?

    Debian, звуковой сигнал при установке

    Можно ли покрасить STDIN перед тем, как записать его в файл?

    Восстановление с Live USB

    Как получить доступ к сетевому принтеру с сервера печати Windows?

    Как привязать определенные файлы при использовании сортировки?

    После использования команды bg можно перенаправить вывод, например nohup?

    Как изменить переменную, которая является частью значения другой переменной

    Установите набор символов терминала Gnome в utf8

    Гнукаш: как суммировать несколько валют в учетной записи заполнителя?

    Соответствовать регулярному выражению между разделителями

    Установка opensuse через USB

    размещение слов, соответствующих ключу в одном ряду

    Linux и Unix - лучшая ОС в мире.