сценарий оболочки для извлечения символов

Я хотел бы извлечь имя пользователя из файла между ключевыми словами «/» и «NET», как показано ниже. Как я могу сделать это с помощью таких программ, как awk , sed или cut .

из:

 audit: command=true rsa1/abc.domain.net@xyz.DOMAIN.NET running audit: command=true user2/xyz.domain.net@xyz.DOMAIN.NET executing 

чтобы:

 audit: command=true rsa1 running audit: command=true user2 executing 

2 Solutions collect form web for “сценарий оболочки для извлечения символов”

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

 < inputfile sed 's/\/.*NET//' > outputfile 

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

 sed -i.bak 's/\/.*NET//' inputfile 

Сбой командного # 1 :

  • < inputfile : перенаправляет содержимое inputfile на stdin sed
  • > outputfile : перенаправляет содержимое stdout sed в outputfile

Командная строка №2 :

  • -i.bak : inputfile.bak файл inputfile.bak и редактирует inputfile на месте
  • inputfile : inputfile sed для чтения ввода из входного inputfile

Распределение регулярных выражений :

  • s : утверждает, что выполняет замену
  • / : запуск шаблона поиска
  • \/ : соответствует символу a /
  • .*NET : соответствует любому количеству символов до конца строки NET
  • / : останавливает шаблон поиска / запускает шаблон замены
  • / : останавливает шаблон замены

Пример вывода:

 ~/tmp$ cat inputfile audit: command=true rsa1/abc.domain.net@xyz.DOMAIN.NET running audit: command=true user2/xyz.domain.net@xyz.DOMAIN.NET executing ~/tmp$ < inputfile sed 's/\/.*NET//' > outputfile ~/tmp$ cat outputfile audit: command=true rsa1 running audit: command=true user2 executing ~/tmp$ sed -i.bak 's/\/.*NET//' inputfile ~/tmp$ cat inputfile.bak audit: command=true rsa1/abc.domain.net@xyz.DOMAIN.NET running audit: command=true user2/xyz.domain.net@xyz.DOMAIN.NET executing ~/tmp$ cat inputfile audit: command=true rsa1 running audit: command=true user2 executing ~/tmp$ 

Вы также можете попробовать с awk :

 awk '{ split($3, a, "/"); $3 = a[1]; } 1' file 
  • проверка данных в столбцах, когда данные или некоторые могут отсутствовать или присутствовать?
  • Bash - Разбить предыдущие параметры команд
  • Обратная последовательность файла с инструментами POSIX?
  • Добавление строки в файл из удаленного ssh
  • метки тега sed
  • дифференцируя два файла и получая уникальный результат в третьем
  • Получите первое соответствие шаблону в строке, не использующей разрез
  • Как найти строки, содержащие более 100 символов, и содержит «if»?
  • egrep regular expression - одно и то же слово в начале и в конце
  • Отменить перемещение букв с помощью sed
  • Как вставить текст в качестве альтернативы из двух файлов с общим шаблоном
  • Linux и Unix - лучшая ОС в мире.