文件1多次<PhotoField1>
之间有长串数据。
示例:
<PhotoField1>alidkfjaeijwoeij<PhotoField1>akdfjalskdfasd<PhotoField1>
文件2包含我想用来标记文件的ID列表
示例:
A00565415
A00505050
A54531245
我有一个AWK命令来解析来自File1的<PhotoField1>
之间的每个字符串到它自己的文件中,但是它只使用数字标记temp文件:
awk -v RS="<PhotoField1>" '{ print $0 > "temp" NR }' File1.xml
我需要用第二个文件中的一行替换temp *部分
所以新文件名为A00565415,A00505050,A54531245等。 - 如果我可以在文件末尾添加.txt,那就太棒了:A54531245.txt
awk命令非常适合将它分成不同的文件,但我需要能够根据File2列表命名它们。
答案 0 :(得分:2)
awk 'NR==FNR{fname[NR]=$0".txt";next} {print > fname[FNR]}' File2.list RS="<PhotoField1>" File1.xml
答案 1 :(得分:1)
你可以使用这个awk:
awk -v RS="<PhotoField1>|\n" 'FNR==NR{a[NR]=$0; next}
NF{ print $0 > a[FNR] ".txt" }' file2 file1