我如何使用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
“ Whitespace可以同时包含spaces和tabs。迄今为止提出的解决方案只能与spaces匹配并成功运行;如果空白采用tab的形式,则它们将失败。
以下内容已在带有两个空格和制表符的OP样本数据集上进行了测试,成功匹配并在两个空格上都进行了操作:
sed 's/^[[:blank:]]*//g' yourFile
测试后,将
-i
开关提供到sed
以使更改持久化-