考虑这个文件:
#!/usr/bin/env bash
cat > example_file.txt <<EOL
|dms,wew,qwqw|
|m|head1|
|3,4,6|
|3e,2,23|
|m|head2|
|xw,12,2123|
|23,d,213|
|23,22q,2skl|
|m|head1|
|dljs,wqpw,2;a|
|dllw,w1p,1q;a|
EOL
每隔一段时间,就会有一个守卫模式:一行以:
|m|
(是的,文件的第一行不必是保护模式)现在我只想打印最后一个保护模式为的那些行:
|m|head1|
并忽略所有其他行。在其他最糟糕的情况下,我希望输出为:
#!/usr/bin/env bash
cat > desired_result_file.txt <<EOL
|m|head1|
|3,4,6|
|3e,2,23|
|m|head1|
|dljs,wqpw,2;a|
|dllw,w1p,1q;a|
EOL
面向正则表达式
或面向场
p
实际上是一个打印标志。awk 程序由
pattern {action}
对组成,如果评估为真(非零) ,action
则在记录上执行。pattern
您可以省略pattern
- 在这种情况下{action}
对每条记录进行评估 - 或{action}
在这种情况下省略 awk 应用默认模式,即打印记录:后者就是这里发生的事情。