0

2列のタブ区切りファイルがあります:

email@address   Name Fullname

(注:Nameとの間Fullnameはスペース)


私が取得したいのは、mutt エイリアス ファイルです。

alias nickname Name Fullname email@address

(注: ここにタブはありません。すべてがスペースです。)


直した

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

それは私に与える:

エイリアス 名前 フルネーム 名前 フルネーム email@address

しかし、私は取得したい:

alias Name_Fullname Name Fullname email@address

では、2 列目のすべてのスペースをアンダースコアに置き換える方法は? ありがとう


私は試した

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

しかし、それは私に奇妙なことを与えます:

alias 1 Name_Fullname email@ddress
4

2 に答える 2

2

これを試して:

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 に答える