Unix 如何使用sed命令从第n个位置删除空间?

Unix 如何使用sed命令从第n个位置删除空间?,unix,sed,Unix,Sed,输入: 输出: B0128001594 2015081100001 RESPDTL 在上面的示例中,我需要删除第三个空格。您可以使用以下选项: B0128001594 2015081100001RESPDTL 基本上,它用前两列替换前两列和尾随空格 因此,abc变成abc,abcd变成abcd,您可以使用以下方法: B0128001594 2015081100001RESPDTL 基本上,它用前两列替换前两列和尾随空格 所以abc变成abc和abcd变成abcd使用awk怎么样 $

输入:

输出:

B0128001594  2015081100001 RESPDTL

在上面的示例中,我需要删除第三个空格。

您可以使用以下选项:

B0128001594  2015081100001RESPDTL
基本上,它用前两列替换前两列和尾随空格


因此,
abc
变成
abc
abcd
变成
abcd
,您可以使用以下方法:

B0128001594  2015081100001RESPDTL
基本上,它用前两列替换前两列和尾随空格

所以
abc
变成
abc
abcd
变成
abcd

使用awk怎么样

$ sed 's/^\([^ ]* *[^ ]*\) */\1/' input
B0128001594  2015081100001RESPDTL
用awk怎么样

$ sed 's/^\([^ ]* *[^ ]*\) */\1/' input
B0128001594  2015081100001RESPDTL

用法:
awk-f f.awk file.dat

echo "B0128001594  2015081100001 RESPDTL" | awk '{print $1,$2$3}'

用法:
awk-f f.awk file.dat

echo "B0128001594  2015081100001 RESPDTL" | awk '{print $1,$2$3}'
要删除第二个空格块,请使用:

$sed's/\s\+//2'要删除第二个空格块,请使用:


$sed's/\s\+//2'对于包含更多空格的文件,即使在“RESPDTL”之后,这是否也有效?因为我只需要删除第二个空格,其他什么都不需要。是的,它是精心制作的,可以这样工作
abcd
变成了
abcd
,所以我们可以说,我们不仅仅有一个空格。但中间有多个空格。那这行吗?对于中间包含多行未知空格的文件。仍然有效。第二组空格将被删除,其余的将不会更改。太棒了,谢谢你了。。如果有多条线路,我想我必须对此进行循环。我说的对吗?即使在“RESPDTL”之后包含更多空格的文件也可以这样做吗?因为我只需要删除第二个空格,其他什么都不需要。是的,它是精心制作的,可以这样工作
abcd
变成了
abcd
,所以我们可以说,我们不仅仅有一个空格。但中间有多个空格。那这行吗?对于中间包含多行未知空格的文件。仍然有效。第二组空格将被删除,其余的将不会更改。太棒了,谢谢你了。。如果有多条线路,我想我必须对此进行循环。我说得对吗?