Linux Shellscript-按块读取

Linux Shellscript-按块读取,linux,bash,shell,awk,Linux,Bash,Shell,Awk,我想知道是否有可能从一个文件中按块读取到一个特定的分隔符(即某个字符串或其他东西),而不是按行读取(就像“读取”一样) input.txt包含: text1 text2 NEXT text3 NEXT text4 text5 每个文本节应保存在特定的单个文件中(text1+text2//text3//text4+text5) 我尝试过编辑IFS,但不幸没有成功。您可以使用带有自定义记录分隔符的gnu awk: awk -v RS='\nNEXT\n' '{sub(/\n$/, ""); pri

我想知道是否有可能从一个文件中按块读取到一个特定的分隔符(即某个字符串或其他东西),而不是按行读取(就像“读取”一样)

input.txt包含:

text1
text2
NEXT
text3
NEXT
text4
text5
每个文本节应保存在特定的单个文件中(text1+text2//text3//text4+text5)


我尝试过编辑IFS,但不幸没有成功。

您可以使用带有自定义记录分隔符的
gnu awk

awk -v RS='\nNEXT\n' '{sub(/\n$/, ""); print "<" $0 ">"}' file
<text1
text2>
<text3>
<text4
text5>
awk-vrs='\n下一个\n'{sub(/\n$/,“”);打印'}'文件

中的每个块都是一条记录。

嘿,谢谢你的第一个帮助!有没有更简单的方法来实现这一点?每个记录是如何保存到一个文件中的?例如,您可以使用:
awk-vrs='\nNEXT\n'{sub(/\n$/,“”);print$0>“file”NR}“file”NR}”file
file1 file2 file3就可以了,我将尝试一下,我已经测试过了,应该对您有用,如果有任何问题,请告诉我。更改
print$0>“file”NR.txt
打印>(“文件”NR.txt”)
以实现简洁性,更重要的是可移植性。
NEXT
出现在输出中的唯一方式是它没有被换行符包围,或者您没有使用GNU awk。