Я забыл много из моей командной строки. Я делаю 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
