Я забыл много из моей командной строки. Я делаю cat file | grep "error" и я хотел бы, чтобы все было показано справа от G:/ включая G:/, если это возможно. Я думаю, это команда awk, но я не знаю что. Я пробовал awk '{print $8+}' но + не работает так, как я надеялся и догадывался.

3 ответа3

2

awk '/G:/{напечатать substr($ 0, совпадение ($ 0, /G:/)); }' файл

1

Вы можете просто сделать:

  grep error file | grep -oP 'G:.+'

Заметки:

  1. Вам не нужно присматривать за файлом, просто непосредственно введите grep 'error'.
  2. Второй grep использует флаг P для регулярных выражений perl. Регулярное выражение говорит: найдите «G:» и любые последующие символы.
  3. Флаг о делает Grep печатать только найденную строку:

    -o, --only-matching
          Print  only  the  matched  (non-empty) parts of a matching line,
          with each such part on a separate output line.
    
1

Пытаться:

cat file | sed "s/.*\(G:\/\)/\1/"

Это удалит все до G:/ . Имейте в виду, что если у вас есть несколько записей G:/ это будет соответствовать самой последней записи. Если вы работаете только с одним файлом, выполните:

sed "s/.*\(G:\/\)/\1/" file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .