Я забыл много из моей командной строки. Я делаю cat file | grep "error"
и я хотел бы, чтобы все было показано справа от G:/ включая G:/, если это возможно. Я думаю, это команда awk, но я не знаю что. Я пробовал awk '{print $8+}'
но + не работает так, как я надеялся и догадывался.
3 ответа
2
awk '/G:/{напечатать substr($ 0, совпадение ($ 0, /G:/)); }' файл
1
Вы можете просто сделать:
grep error file | grep -oP 'G:.+'
Заметки:
- Вам не нужно присматривать за файлом, просто непосредственно введите grep 'error'.
- Второй grep использует флаг P для регулярных выражений perl. Регулярное выражение говорит: найдите «G:» и любые последующие символы.
Флаг о делает 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