删除一行中的第一个空格

The*_*nix 8 bash text-processing

如何仅从如下一行中删除第一个空格而不删除同一行中的其他空格?

示例输入:

2015-04-18 10:21:59 10 05430 -9999 -9999 000000000000
Run Code Online (Sandbox Code Playgroud)

示例输出:

2015-04-1810:21:59 10 05430 -9999 -9999 000000000000
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 21

您可以sed为此使用:

sed 's/ //' infile >outfile
Run Code Online (Sandbox Code Playgroud)

这将替换文件的所有行infile,将第一个空格字符替换为空字符(即删除它)。输出存储在文件中outfile。使用sed 's/ //N',其中N是 1 到 9 之间的整数,您可以选择要删除的空间。

如果该行在 shell 变量中,则可以使用

var="${var/ /}"
Run Code Online (Sandbox Code Playgroud)

这使用${parameter/pattern/string}参数扩展 inbash来做与sed命令相同的事情,但在$var. 在此示例中,生成的字符串然后存储回$var.