使用 AWK 拆分 file1,然后根据 file2 中的行命名新文件
splitting file1 using AWK and then name the new files based on lines from file2
文件 1 有多次 <PhotoField1>
之间的长串数据。
示例:
<PhotoField1>alidkfjaeijwoeij<PhotoField1>akdfjalskdfasd<PhotoField1>
文件 2 包含我想用来标记文件的 ID 列表
示例:
A00565415
A00505050
A54531245
我有一个 AWK 命令来将 <PhotoField1>
之间的每个字符串从 File1 解析到它自己的文件中,但它只用数字标记临时文件:
awk -v RS="<PhotoField1>" '{ print [=12=] > "temp" NR }' File1.xml
我需要用第二个文件中的一行替换 temp* 部分
因此新文件将命名为 A00565415、A00505050、A54531245 等。
- 如果我能在文件末尾添加一个 .txt 就更好了:A54531245.txt
awk 命令非常适合将其分成不同的文件,但我需要能够根据 File2 列表命名它们。
awk 'NR==FNR{fname[NR]=[=10=]".txt";next} {print > fname[FNR]}' File2.list RS="<PhotoField1>" File1.xml
你可以使用这个 awk:
awk -v RS="<PhotoField1>|\n" 'FNR==NR{a[NR]=[=10=]; next}
NF{ print [=10=] > a[FNR] ".txt" }' file2 file1
文件 1 有多次 <PhotoField1>
之间的长串数据。
示例:
<PhotoField1>alidkfjaeijwoeij<PhotoField1>akdfjalskdfasd<PhotoField1>
文件 2 包含我想用来标记文件的 ID 列表
示例:
A00565415
A00505050
A54531245
我有一个 AWK 命令来将 <PhotoField1>
之间的每个字符串从 File1 解析到它自己的文件中,但它只用数字标记临时文件:
awk -v RS="<PhotoField1>" '{ print [=12=] > "temp" NR }' File1.xml
我需要用第二个文件中的一行替换 temp* 部分
因此新文件将命名为 A00565415、A00505050、A54531245 等。 - 如果我能在文件末尾添加一个 .txt 就更好了:A54531245.txt
awk 命令非常适合将其分成不同的文件,但我需要能够根据 File2 列表命名它们。
awk 'NR==FNR{fname[NR]=[=10=]".txt";next} {print > fname[FNR]}' File2.list RS="<PhotoField1>" File1.xml
你可以使用这个 awk:
awk -v RS="<PhotoField1>|\n" 'FNR==NR{a[NR]=[=10=]; next}
NF{ print [=10=] > a[FNR] ".txt" }' file2 file1