awk命令将字段分隔符从平铺更改为制表符

awk命令将字段分隔符从平铺更改为制表符,awk,sed,Awk,Sed,我想在awk命令中将delimter tilde替换为选项卡空间,我在下面提到了我的预期 输入 结果 1 2 3 代码: 这确实是tr的工作: tr '~' '\t' 但在awk中,您只需通过将其中一个字段指定给它自己的值来强制重新编译记录: awk -F'~' -v OFS='\t' '{$1=$1}1' 我在第1行附近使用了上面的cmd,awk:syntax error。这不适用于所有awk$1=$1'更便于携带。此外,这将抑制空行的输出。sed对我不

我想在awk命令中将delimter tilde替换为选项卡空间,我在下面提到了我的预期

输入

结果

1 2 3 代码:


这确实是tr的工作:

tr '~' '\t'
但在awk中,您只需通过将其中一个字段指定给它自己的值来强制重新编译记录:

awk -F'~' -v OFS='\t' '{$1=$1}1'

我在第1行附近使用了上面的cmd,awk:syntax error。这不适用于所有awk$1=$1'更便于携带。此外,这将抑制空行的输出。sed对我不起作用,但我使用perl获得了输出。感谢您的帮助。perl-pe's/~/\t/g'inputfile@user2449709使用-sed$'y/~/\t可能会更幸运
awk NF=NF FS='~' OFS='\t'
1 2 3
$echo ~1~2~3~|sed 'y/~/\t/'
    1       2       3
tr '~' '\t'
awk -F'~' -v OFS='\t' '{$1=$1}1'