用下划线连接文件的每一行

use*_*373 0 bash sed for

我有一个test.txt像这样命名的输入文件:

Homo sapiens
Mus musculus
Rat rattus rattus
Run Code Online (Sandbox Code Playgroud)

我想在for这里使用一个循环并遍历每一行。像这样的事情:

for i in "`cat test.txt`"
do
        fn=store_name
        do something else > ${fn}.txt
done
Run Code Online (Sandbox Code Playgroud)

由于每行名称之间都有一个空格,因此我在cat test.txt. 我希望做一个变量fn它重视_线条的这些名字之间,我fn变得Homo_sapiensMus_musculus,如果我有Rat rattus rates成为Rat_rattus_rattus

我怎样才能做到这一点?

JRF*_*son 5

用于tr将空格音译为下划线:

while read line
do
    echo ${line} | tr -s " " "_"
done < test.txt
Run Code Online (Sandbox Code Playgroud)

Homo_sapiens Mus_musculus Rat_rattus_rattus