我忘记了很多命令行。我正在做cat file | grep "error"
,我希望它显示 G:/ 右侧的所有内容,包括 G:/(如果可能)。我认为它是一个 awk 命令,但我不知道是什么。我试过了,awk '{print $8+}'
但 + 不像我希望和猜测的那样工作。
答案1
awk '/G:/{ print substr($0, match($0, /G:/)); }' 文件
答案2
尝试:
cat file | sed "s/.*\(G:\/\)/\1/"
这将删除 之前的所有内容G:/
。请注意,如果您有多个G:/
条目,它将匹配最后一个条目。如果您只处理单个文件,请执行以下操作:
sed "s/.*\(G:\/\)/\1/" file
答案3
你可以这样做:
grep error file | grep -oP 'G:.+'
笔记:
- 您不需要对文件进行 cat 操作,只需直接在其中 grep “error” 即可。
- 第二个 grep 使用 perl 正则表达式的 P 标志。正则表达式表示:查找“G:”及其后的任何字符。
o 标志使 grep 打印匹配的字符串仅有的:
-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.