Shell 获取文件中超过特定行数的所有文本块
文本块由空行分隔,如:Shell 获取文件中超过特定行数的所有文本块,shell,awk,perl,Shell,Awk,Perl,文本块由空行分隔,如: AAA BBB AAA' BBB' AAA BBB CCC 我想得到最后一个超过两行的文本块。 我知道我可以写Python脚本 如何使用一些命令行fu来执行此操作?编辑:我想我误解了“获取最后一个文本块”。要简单地打印超过2行的所有段落,请执行以下操作: awk -v RS= -v ORS='\n\n' -F '\n' 'NF>2' file : RS设置为空值可启用“段落模式”FS已设置为\n(这样NF将等于每个段落中的行数)。awk程序保存符合条件的最
AAA
BBB
AAA'
BBB'
AAA
BBB
CCC
我想得到最后一个超过两行的文本块。
我知道我可以写Python脚本
如何使用一些命令行fu来执行此操作?编辑:我想我误解了“获取最后一个文本块”。要简单地打印超过2行的所有段落,请执行以下操作:
awk -v RS= -v ORS='\n\n' -F '\n' 'NF>2' file
:
RS
设置为空值可启用“段落模式”FS
已设置为\n
(这样NF
将等于每个段落中的行数)。awk程序保存符合条件的最新记录NF>2
&并在末尾打印
使用类似的想法(除了perl以不同的方式计算字段数):
根据文件的内容,向后读取文件可能会更快,例如使用
tac
:
tac file | perl -F'\n' -l -00e 'if ($#F >= 2) {print $_; exit}' | tac
编辑:我想我误解了“获取最后一个文本块”。要简单地打印超过2行的所有段落,请执行以下操作:
awk -v RS= -v ORS='\n\n' -F '\n' 'NF>2' file
:
RS
设置为空值可启用“段落模式”FS
已设置为\n
(这样NF
将等于每个段落中的行数)。awk程序保存符合条件的最新记录NF>2
&并在末尾打印
使用类似的想法(除了perl以不同的方式计算字段数):
根据文件的内容,向后读取文件可能会更快,例如使用
tac
:
tac file | perl -F'\n' -l -00e 'if ($#F >= 2) {print $_; exit}' | tac
我不知道从哪里开始。我在几年前创建了我的SO帐户。查看我的个人资料,你会发现这是我第一次问这样的问题。我确实帮助了其他人。也许是时候寻求帮助了?我不知道从哪里开始。我在几年前创建了我的SO帐户。查看我的个人资料,你会发现这是我第一次问这样的问题。我确实帮助了其他人。也许我该找人帮忙了?
tac file | perl -F'\n' -l -00e 'if ($#F >= 2) {print $_; exit}' | tac