我是新来的AWK,我觉得很棒,但我是个傻瓜。
我在做这个:

awk '{print $1, $2 = /Pattern\w+/}' file

对于此类数据:
3145 wfgd4  2345 sdf 55667 PatternAHF34
3148 fh345  34f  PatternRT4555 NNN NNN
3158 57ggt  3458f 58886 PatternYT334 56YY
3165 rf3d4  2t45 sdf 55667 Potato
3188 fhrf5  34b  PatternRT8855 N3 NN55
3218 g7ggt  34ggf 5116 PatternYYY34 56YT

如您所见,列不对齐。
我想要的:
3145 PatternAHF34
3148 PatternRT4555
3158 PatternYT334
3165
3188 PatternRT8855
3218 PatternYYY34

我得到的是:
3145 1
3148 1
3158 1
3165 0
3188 1
3218 1

提前谢谢大家

最佳答案

你可以说:

awk '{match($0, /Pattern\w+/)} { print $1, substr($0, RSTART, RLENGTH) }' file

对于您的输入,它将产生:
3145 PatternAHF34
3148 PatternRT4555
3158 PatternYT334
3165
3188 PatternRT8855
3218 PatternYYY34

(您的示例生成01,因为您将$2指定给模式匹配的结果。)
您可能还需要参考Built-in variables

10-06 05:10