Linux 用下划线替换文件中的空格(bash)

Linux 用下划线替换文件中的空格(bash),linux,bash,Linux,Bash,我目前正在编写一个脚本,使用“mapfile”访问另一个文件,将其放入数组中。但是,输入的文件包含一些空格,脚本将其作为新的数组条目读取 如何在我引入的文件体中用下划线替换空格?我只看到了如何替换文件名的说明,而没有看到其中包含的内容 提前谢谢你!如果您需要进一步的澄清,请告诉我。给出: $ cat file 1 2 3 4 您可以使用sed: $ sed 's/[[:space:]]/_/g' file 1_2_3_4 那么你可以做: $ mapfile -t arr < <

我目前正在编写一个脚本,使用“mapfile”访问另一个文件,将其放入数组中。但是,输入的文件包含一些空格,脚本将其作为新的数组条目读取

如何在我引入的文件体中用下划线替换空格?我只看到了如何替换文件名的说明,而没有看到其中包含的内容

提前谢谢你!如果您需要进一步的澄清,请告诉我。

给出:

$ cat file
1 2 3 4 
您可以使用
sed

$ sed 's/[[:space:]]/_/g' file
1_2_3_4
那么你可以做:

$ mapfile -t arr < <(sed 's/[[:space:]]/_/g' file)
$mapfile-t arr<带tr:

tr [[:space:]] '_' <filename

tr[[:space:][]”显示您的代码。这听起来像是缺乏引用。确保对“${lines[@]}”中的行执行
而不是对${lines[@]}中的行执行