我有一个文本文件itemlist.txt
,它由一系列字符串组成,如下所示:
Item1
Item2
Item3
Item4
...
每个字符串对应于与列表位于同一目录中的文本文件(所有文件扩展名都相同)。换句话说,列表中的Item1
表示同一目录中的Item1.txt
,依此类推。
使用此列表编辑每个文件的有效方法是什么,使用Bash shell脚本将每个文件的文件名附加到自身?换句话说," Item1"应该是Item1.txt等的最后一行。
我有基于GUI的工作流工具,一旦字符串就位,就可以进一步操作这些文本文件,但是我有很多东西可以学习Bash,这让我很难过。理想情况下,我想编写一个脚本,接受用户定义的参数来写入文件和文件名,但是......宝贝步骤!
我认为sed
在操作文本文件方面比echo
更好,但我无法正确循环文本文件。
答案 0 :(得分:3)
echo可能是最简单的,因为你想追加
while read f; do
echo "$f" >>"$f.txt"
done <itemlist.txt
答案 1 :(得分:2)
您可以使用简单的read
循环:
while read -r item; do
file="$item.txt"
[[ ! -f "$file" ]] && continue # skip if file doesn't exist or if it is not a regular file
printf '%s\n' "$item" >> "$file"
done < itmelist.txt