Shell 删除字段之间的空白

Shell 删除字段之间的空白,shell,sed,awk,tr,Shell,Sed,Awk,Tr,我在一个input.txt中有400000多个字段,它们之间用空格隔开。 例如,012重复了400000次 我需要像021112那样将它们放在一起 我该怎么做?有很多方法可以做到这一点,最简洁的方法是使用tr删除所有空格: tr -d ' ' < file > outfile 警告:sed解决方案会用更改覆盖原始文件 由于您被问及关于awk的问题,一般的解决方案是设置一个空白的OFS,并强制使用$1=$1进行重建,但这并不像前两个解决方案那样优雅: awk '{$1=$1}1' O

我在一个
input.txt
中有400000多个字段,它们之间用空格隔开。 例如,
012
重复了400000次

我需要像
021112
那样将它们放在一起


我该怎么做?

有很多方法可以做到这一点,最简洁的方法是使用
tr
删除所有空格:

tr -d ' ' < file > outfile
警告:
sed
解决方案会用更改覆盖原始文件

由于您被问及关于
awk
的问题,一般的解决方案是设置一个空白的
OFS
,并强制使用
$1=$1
进行重建,但这并不像前两个解决方案那样优雅:

awk '{$1=$1}1' OFS= file > outfile

有很多方法可以做到这一点,最简洁的方法是使用
tr
删除所有空格:

tr -d ' ' < file > outfile
警告:
sed
解决方案会用更改覆盖原始文件

由于您被问及关于
awk
的问题,一般的解决方案是设置一个空白的
OFS
,并强制使用
$1=$1
进行重建,但这并不像前两个解决方案那样优雅:

awk '{$1=$1}1' OFS= file > outfile

没问题。你应该通过点击旁边的勾号来接受这个答案(除非有更好的答案)。这将显示您的问题已解决。如果有选项卡,可以使用
s/[[:space:]///g
而不是
s////g
(或
tr-d'[:space:]
)没有问题。你应该通过点击旁边的勾号来接受这个答案(除非有更好的答案)。这将显示您的问题已解决。如果有选项卡,可以使用
s/[[:space:]///g
而不是
s////g
(或
tr-d'[:space:]'