批处理和 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