mai*_*ash 10 linux bash ksh awk
我想打印文件中的所有行,直到匹配词请建议如何使用 awk
例如
我想打印所有行,直到单词 PPP
备注第一行与 AAA 不同(任何单词)
cat file.txt
AAA ( the first line/word chuld be any word !!!!! )
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
MMM
(((
&&&
Run Code Online (Sandbox Code Playgroud)
所以我需要得到这个
AAA
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
Run Code Online (Sandbox Code Playgroud)
其他示例(想要打印到 KJGFGHJ )
cat file.txt1
HG
KJGFGHJ
KKKK
Run Code Online (Sandbox Code Playgroud)
所以我需要得到
HG
KJGFGHJ
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 14
尝试:
$ awk '1;/PPP/{exit}' file
AAA
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
Run Code Online (Sandbox Code Playgroud)
小智 8
或者,使用匹配第一行(NR 等于 1)的范围模式,直到一行中“PPP”的第一个匹配项
awk 'NR==1,/PPP/' file
Run Code Online (Sandbox Code Playgroud)
如果该行必须与“PPP”完全匹配,则仅使用
awk 'NR==1,/^PPP$/' file
Run Code Online (Sandbox Code Playgroud)
如果您想对参数列表中的每个文件执行相同操作,请使用 FNR 变量,该变量将每个处理文件的第一行重置为 1
awk 'FNR==1,/PPP/' file1 file2 ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28551 次 |
| 最近记录: |