批处理和 CAT 命令
Batching & CAT Command
我正在尝试将一个字符串添加到许多文件的开头,创建一个新的文件扩展名,同时保持文件名。
cat string.txt file001.old > file001.new
cat string.txt file002.old > file002.new
cat string.txt file003.old > file003.new
etc...
我尝试通过以下方式对其进行批处理:
for i in *.old
do
cat string.txt $i > $i.new
done
但这并不完全奏效,我的技能有限......
在此先感谢您的帮助。
有几种方法可以做到这一点。这可能是最简单的:
for i in *.old
do
echo string.txt > ${i%old}new
cat $i >> ${i%old}new
done
或者这个更短的选择
for i in *.old
do
echo string.txt | cat - $i > ${i%old}new
done
甚至使用 heredoc 而不是管道
for i in *.old
do
cat - $i <<< string.txt > ${i%old}new
done
谢谢大家...我忘了添加标点符号,应该看起来像这样:
for i in *.old
do
cat string.txt "$i" > "$i".new
done
输出看起来像 "file002.old.new"
我使用 SED 删除旧扩展的地方
但我肯定会尝试其他方法
再次感谢,Nem
我正在尝试将一个字符串添加到许多文件的开头,创建一个新的文件扩展名,同时保持文件名。
cat string.txt file001.old > file001.new
cat string.txt file002.old > file002.new
cat string.txt file003.old > file003.new
etc...
我尝试通过以下方式对其进行批处理:
for i in *.old
do
cat string.txt $i > $i.new
done
但这并不完全奏效,我的技能有限...... 在此先感谢您的帮助。
有几种方法可以做到这一点。这可能是最简单的:
for i in *.old
do
echo string.txt > ${i%old}new
cat $i >> ${i%old}new
done
或者这个更短的选择
for i in *.old
do
echo string.txt | cat - $i > ${i%old}new
done
甚至使用 heredoc 而不是管道
for i in *.old
do
cat - $i <<< string.txt > ${i%old}new
done
谢谢大家...我忘了添加标点符号,应该看起来像这样:
for i in *.old
do
cat string.txt "$i" > "$i".new
done
输出看起来像 "file002.old.new" 我使用 SED 删除旧扩展的地方 但我肯定会尝试其他方法
再次感谢,Nem