说我在文件(file.txt)中有以下数据:
one|two|three|four|five|six
我想在第一场($ 1)前加一个“A”,我想在第三场($ 3)前加上“B”。我的awk脚本会是什么样子?我试过了:
awk -F "|" -OFS='|' '
{
$1 = "A"$1
$3 = "B"$3
print;
}
' file.txt
但是这没用。输出是:
Aone|two|three|four|five|six B
对不起,我在这里不是一个很棒的程序员。
答案 0 :(得分:1)
看起来我想通了。它与输出字段分隔符(OFS)有关。如果我发布以下内容,则可以:
awk -F "|" 'BEGIN{OFS="|";}{$1="A"$1;$3="B"$3; print}' file.txt
OFS值必须在脚本中,不作为参数传递给awk。不完全确定原因。
答案 1 :(得分:0)
使用标记-OFS='|'
将字段分隔符设置为S=|
。只是做
awk '...' FS=\| OFS=\| file.txt