创建多个空文件,其名称将从文件中获取

时间:2019-04-19 14:37:37

标签: bash

我想创建一个空文件,这些文件的名称来自list.txt。我尝试过:

declare -a siglist=$(cat list.txt)

for fname in {list}; do 
    echo $fname > "$fname.zz"
done

2 个答案:

答案 0 :(得分:1)

请注意,您的echo解决方案不会创建空文件:它们只包含一个换行符。

如果您想完全留在外壳中(注释显示了使用touch和xargs的各种方式),则可以将 null-command :(不执行任何操作)与重定向如下。

while read filename; do
    : > "${filename}.zz"
done < list.txt

这是所有Bourne遗产外壳都可移植的,因此不仅限于bash。

答案 1 :(得分:0)

如果您对awk表示满意,请尝试以下。

awk '{val=(val?val OFS:"")$0} END{system("touch " val)}' Input_file

说明: :在val程序中创建一个名为awk的变量,并将其行值串联在一起。在此END程序的awk部分中,使用此命令的system命令来使用touch命令并将该变量val传递给它以在其中创建所有文件名