0

我有一个 2column,tab delimiterde 文件:

email@address   Name Fullname

(注:Name和之间Fullname是空格)


我想得到的是一个 mutt 别名文件:

alias nickname Name Fullname email@address

(注意:这里没有标签,一切都是空格。)


我解决了

awk -F "\t" '{ print "alias" " " $2 " " $2 " " $1 }' $FILE

这给了我:

别名 姓名 全名 姓名 全名 电子邮件@地址

但我想得到:

alias Name_Fullname Name Fullname email@address

那么,如何用下划线替换第二列中的所有空格?谢谢


我试过了

awk -F "\t" '{ print "alias" " " sub(/ /,"_",$2) " " $2 " " $1 }' $FILE

但这让我很奇怪:

alias 1 Name_Fullname email@ddress
4

2 回答 2

2

try this:

awk -F "\t" '{x=$2;print "alias" " " gsub(/ /,"_",x) " " $2 " " $1 }' $FILE 
于 2012-05-31T09:59:59.307 回答
0

使用默认输入分隔符怎么样:

awk '{printf "alias %s %s_%s %s %s %s\n", $2, $3, $2, $3, $1}' $FILE
于 2012-05-31T08:40:11.933 回答