Rub*_*m74 7 sed text-processing regular-expression
在这里得到了一个列列表,如下:
59 LOUIS 1202 +1
60 FREDDIE 1201 +4
61 FINLAY 1200 -2
62 LEON 1137 +12
63 HARLEY 1132 +6
64 DAVID 1127 -1
65 MOHAMMAD1100 +6
66 REECE 1095 -1
67 KIAN 1090 0
68 KAI 1056 -6
69 KYLE 1030 -18
70 BRANDON 1011 -4
71 HAYDEN 1006 +5
72 ZACHARY 995 +10
73 KIERAN 973 -12
73 LUCA 973 -1
75 ASHTON 954 +4
76 BAILEY 939 -6
77 JAKE 913 +10
78 GABRIEL 910 +14
79 SAM 900 -2
80 EVAN 890 0
81 BRADLEY 847 -13
Run Code Online (Sandbox Code Playgroud)
如何仅提取带有例如字母“L”的行,如下所示:
73 LUCA 973 -1
Run Code Online (Sandbox Code Playgroud)
bu5*_*man 19
awk '$2 ~ /^L/' file
Run Code Online (Sandbox Code Playgroud)
告诉使用正则表达式awk
测试第二个字段并打印匹配的行。$2
~
^L
正则表达式的第二字段匹配($2
),当它开始^
与L
基于@bu5hman 的回答:使用 awk,您可以轻松地将字母作为参数传递:
awk -v letter="L" 'substr($2, 1, 1) == letter' file
# or with a constructed regex
awk -v letter="L" '$2 ~ "^" letter' file
Run Code Online (Sandbox Code Playgroud)
小智 5
这似乎是重复的,但无论如何,如果理解了,可以这样做:
首先,将列表保存在某个nameslist.txt
文件中,然后:
sed -rn '/^[^\s]+\s+[F]/p' list.txt > result.txt
,它应该在result.txt
文件中返回以下输出:
60 FREDDIE 1201 +4
61 FINLAY 1200 -2