我有一个patternfile.txt。
1 FPAT = "pata"
2 FPAT = "patb"
3 FPAT = "patc"
和awkfile.txt。
BEGIN { FPAT }
{
for(i=1; i<=NF; i++){
print("%s\n", $i)}
}
我想在替换字符串之后制作多个文件&#39; FPAT&#39;每个模式pata,patb,patc逐个像这样。
awkfile1.txt:
BEGIN { FPAT = "pata" }
{
for(i=1; i<=NF; i++){
print("%s\n", $i)}
}
awkfile2.txt:
BEGIN { FPAT = "patb" }
{
for(i=1; i<=NF; i++){
print("%s\n", $i)}
}
awkfile3.txt:
BEGIN { FPAT = "patc" }
{
for(i=1; i<=NF; i++){
print("%s\n", $i)}
}
请帮帮我。
答案 0 :(得分:2)
我感觉这有点像XY problem,但我认为你可以在awk的一次调用中获得你想要的输出:
awk '{ print "BEGIN { " substr($0, index($0, $2)) " }" > ("awkfile" $1 ".txt") }' patternfile.txt
这只是读取输入文件的每一行,并将您感兴趣的部分(从第二个字段到行尾)写入输出文件。它使用输入的第一个字段来确定输出文件名。