Grep查找不包含字符串的文件,然后使用sed将多行字符串添加到文件中

时间:2016-10-19 08:33:00

标签: macos sed terminal grep

我希望对文件夹中的一组文本文件执行两项操作但无法执行此操作:

  1. 查找并排除包含字符串Title:
  2. 的文件夹中的文本文件
  3. 将多行字符串 添加到结果中。
  4.   

    名称:
      作者:
      类型:
      类型:
      格式:

    我可以做第一步:

    find . -type f | grep -L  "Title: " 
    

    对于第二步,我正在使用此命令,但它无法使用多行。

    find . -type f | grep -L  "Title: " * | sed -i '1iTitle:\Author:\Type:\Genre:\Format:\'
    

    但是我无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

如何避免find递归grep,然后在结果上调用sed? (请注意,您的sed表达式不起作用;使用sedfile可以执行您想要的操作)

grep -rL "Title: " | xargs sed -i -f sedfile

sedfile如下

1i\
Title:\
Author:\
Type:\
Genre:\
Format:

(顺便说一句,请检查您使用的sed版本是-i选项"就地",我不确定。在这种情况下,它会更复杂,但仍然可行)