将空格转换为破折号

将空格转换为破折号

给定一个多行文件,我想将每个空格更改为破折号。

我确实喜欢这样:

#!/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 

相关内容