我如何使用 bash 删除每行文件中的空格,例如 file1.txt。前:
gg g
gg g
t ttt
后:
gg g
gg g
t ttt
我如何使用 bash 删除每行文件中的空格,例如 file1.txt。前:
gg g
gg g
t ttt
后:
gg g
gg g
t ttt
sed -i 's/ //g' your_file
会做到这一点,就地修改文件。
要仅删除一行开头的空格,请使用sed -i 's/^ *//' your_file
在第一个表达式中,我们将所有空格都替换为空。在第二个中,我们在开头使用^
关键字替换
tr
(删除所有空格):$ tr -d ' ' <input.txt >output.txt
$ mv output.txt input.txt
sed
(删除前导空格)$ sed -i 's/^ *//' input.txt
使用可以使用 perl -i 进行就地替换。
perl -p -e 's/^ *//' file
如果模式匹配,则删除行首之前的空格。使用以下命令。例如你的 foo.in 有这样的模式
This is a test
Lolll
blaahhh
This is a testtt
发出以下命令后
sed -e '/This/s/ *//' < foo.in > foo.out
foo.out 将是
This is a test
Lolll
blaahhh
This is a testtt
“空白”可以包括空格和制表符。迄今为止提出的解决方案只能在空间上匹配和成功运行;如果空格采用制表符的形式,它们将失败。
以下已在 OP 的样本数据集上进行了测试,其中包含空格和制表符,成功匹配并在两者上运行:
sed 's/^[[:blank:]]*//g' yourFile
测试后,提供-i
开关以sed
使更改持久-