linux 输出仅显示“:”的右侧

linux 输出仅显示“:”的右侧

我忘记了很多命令行。我正在做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:.+'

笔记:

  1. 您不需要对文件进行 cat 操作,只需直接在其中 grep “error” 即可。
  2. 第二个 grep 使用 perl 正则表达式的 P 标志。正则表达式表示:查找“G:”及其后的任何字符。
  3. 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.
    

相关内容