我有一个如下文件。
***ABC***
Line1*
L*ine2*
***DEF***
Line3*
Lin*e4*
我需要创建两个文件ABC
并DEF
包含以下数据:
ABC.dat:
Line1*
L*ine2*
DEF.dat:
Line3*
Lin*e4*
我也可以使用小型 shell 脚本生成文件。
答案1
$ awk '/^\*\*\*/{gsub(/\*/,""); fname=$0".dat"; next} {print > fname}' ip.txt
$ cat ABC.dat
Line1*
L*ine2*
$ cat DEF.dat
Line3*
Lin*e4*
/^\*\*\*/
匹配以以下开头的行***
gsub(/\*/,"")
删除所有*
此类行fname=$0".dat"
将附加的剩余字符分配.dat
给fname
变量next
移至下一行
print > fname
将当前行内容打印到保存在的文件名中fname