给定一个多行文件,我想将每个空格更改为破折号。
我确实喜欢这样:
#!/bin/bash
while read line; do
echo "${line// /-}"
done
这很好用,但我需要一个更好的方法!
答案1
标准tr
实用程序正是这样做的:
tr ' ' '-' <filename.old >filename.new
sponge
您可以使用诸如就地编辑之类的工具(隐藏正在使用临时文件的事实):
tr ' ' '-' <filename | sponge filename
答案2
sed --in-place 's/ /-/g' /path/to/file
答案3
使用 Perl:
perl -ne 's/ /-/g;print ' FILE
答案4
我喜欢用替换。
replace " " "-" </path/to/file