我想创建一个空文件,这些文件的名称来自list.txt。我尝试过:
declare -a siglist=$(cat list.txt)
for fname in {list}; do
echo $fname > "$fname.zz"
done
答案 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
传递给它以在其中创建所有文件名