我有一些代码,它们将模式附加到文本文件中,并根据用户的输入进行操作,如下所示;
echo -n "WHICH STATIONS?"
read station
awk -v input="$station" '
BEGIN {
n = split(tolower(input), user)
pattern= "force %-4s npos 0. .0001\n"
}
{print}
/<< write after this line >>/ {
for (i=1; i<=n; i++)
printf pattern, user[i]
exit
}
' ./data > data_2
假设用户的输入abcd ab12
然后命令附加到下面几行;
force abcd npos 0. .0001
force ab12 npos 0. .0001
我需要为每个输入添加epos
字符串,upos
以便将其分成几行,如下所示(对于与上面示例相同的输入);
force abcd npos 0. .0001
force abcd epos 0. .0001
force abcd upos 0. .0001
force ab12 npos 0. .0001
force ab12 epos 0. .0001
force ab12 upos 0. .0001
我如何修改pattern
将这些行附加到数据文件中的选项?
答案1
根据您提供的信息,我理解如下:
awk -v input="$station" '
BEGIN {
n = split(tolower(input), user)
pattern= "force %-4s npos 0. .0001\n"
}
{print}
{
for (i=1; i<=n; i++){
print "force " user[i] " epos 0. .0001"
print "force " user[i] " upos 0. .0001"
}
}
' data
在for
每个用户的循环中epos
,字符串upos
都会根据您的要求进行打印。