我在每行上都有不同文本的文件,例如:
blue
red
black
blue and red
red and black
如何为每一行文本创建文件,并且文件名要与文本相同?还要在文件中添加扩展名?文件应如下所示:
blue.txt
red.txt
black.txt
blue and red.txt
red and black.txt
编辑:我犯了一个错误,因为我还有一些文本行,其中包含多个单词,它们之间有空格。抱歉。
答案 0 :(得分:4)
逐行读取输入文件:
while read basename ; do
touch "$basename".txt
done < list_of_names.txt
答案 1 :(得分:1)
您可以像这样使用 GNU Parallel :
parallel touch {}.txt < filelist
如果您想查看将要执行的操作,而无需实际执行任何操作,请使用:
parallel --dry-run touch {}.txt < filelist
答案 2 :(得分:1)
使用sed
和xargs
:
sed -e 's/$/.txt/' input.txt | xargs -d '\n' touch
其中
sed
将$
文件中读取的每一行的行尾(.txt
)替换为input.txt
; xargs
根据sed
命令的结果构建参数列表,并将其传递给touch
命令; -d '\n'
选项将换行符\n
指定为输入项的分隔符。