我有一个2列,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
答案 0 :(得分:1)
试试这个:
awk -F "\t" '{x=$2;print "alias" " " gsub(/ /,"_",x) " " $2 " " $1 }' $FILE
答案 1 :(得分:0)
使用默认输入分隔符怎么样:
awk '{printf "alias %s %s_%s %s %s %s\n", $2, $3, $2, $3, $1}' $FILE