我想在awk命令中將分隔符替換爲製表符空間,我在下面提到了我的預期。awk命令將字段分隔符從波形符號更改爲選項卡
輸入
~1~2~3~
輸出
1 2 3
我
awk -F"~" '{ OFS ="\t"; print }' inputfile
我想在awk命令中將分隔符替換爲製表符空間,我在下面提到了我的預期。awk命令將字段分隔符從波形符號更改爲選項卡
輸入
~1~2~3~
輸出
1 2 3
我
awk -F"~" '{ OFS ="\t"; print }' inputfile
awk NF=NF FS='~' OFS='\t'
結果這不會工作
1 2 3
代碼sed:
$echo ~1~2~3~|sed 'y/~/\t/'
1 2 3
sed不適合我,但我得到了使用Perl的輸出感謝您的幫助。 perl -pe'/〜/ \ t/g'輸入文件 – user2449709
@ user2449709使用[ANSI-C引用](http://www.gnu.org/software/bash/manual/bashref.html# ANSI_002dC-引用) - 'sed $'y /〜/ \ t'' –
這是真的TR工作:
tr '~' '\t'
但在AWK你只需要強制記錄通過分配中的一個字段進行重新編譯它自己的價值:
awk -F'~' -v OFS='\t' '{$1=$1}1'
我得到的錯誤使用了上面的cmd,awk:第1行附近的語法錯誤。 – user2449709
這樣做es不適用於所有awk。 '1美元= 1美元'將更便攜。此外,這將抑制空白行的輸出。 –