配料& CAT命令

时间:2016-07-05 12:19:20

标签: unix cat

我正在尝试将字符串添加到许多文件的开头,在保持文件名的同时创建新的文件扩展名。

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

但这并没有完全奏效,我的技能有限...... 提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。这可能是最简单的:

for i in *.old
do
  echo string.txt > ${i%old}new
  cat $i >> ${i%old}new
done

答案 1 :(得分:0)

或者这个较短的选择

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

答案 2 :(得分:0)

谢谢你们......我忘了添加标点符号,应该看起来像这样:

for i in *.old
do
    cat string.txt "$i" > "$i".new
done

输出看起来像&#34; file002.old.new&#34; 我在哪里使用SED来删除旧的扩展 但我肯定会尝试其他方法

再次感谢,Nem