例如,
假设我有logfile.txt其中包含
“这是一个示例文本文件”

我的模式是“样本”。如何获取logfile.txt中样本旁边的单词。

最佳答案

这是使用awk的一种方法:

$ awk '{for(i=1;i<=NF;i++)if($i=="sample")print $(i+1)}' file
text

解释:
$ awk '{
    for(i=1;i<=NF;i++)        # process every word
        if($i=="sample")      # if word is sample
            print $(i+1)      # print the next
}' file

并sed:
$ sed -n 's/.* sample \([^ ]*\).*/\1/p' file
text

IE。 sample之后下一个空格分隔的字符串

和grep使用PCRE,并积极回味:
$ grep -oP '(?<=sample )[^ ]*' file
text

请参阅前面的说明。

关于linux - 如何使用grep,sed和awk在找到的模式后打印下一个单词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48606867/

10-13 09:18