使用sed和find,如果文件包含某个值,我该如何附加到文件?

时间:2017-07-26 17:40:39

标签: bash awk sed

我有一大堆需要添加评论的文件。

我正在使用sed:

sed -i '/line1/a line2' *

当我想匹配line1并在我的目录中的每个文件下面添加line2时,这很好,但是只包含某个参数的文件呢?

例如,如果我想添加注释,但仅限于包含文本的文件:

add comment here

我在考虑做类似的事情:

find . -file '*.txt' -exec grep -iR 'add comment here' {} \; -exec sed -i '/line1/a line2/' {}\;

但这并没有像预期的那样发挥作用。

1 个答案:

答案 0 :(得分:0)

您可以直接使用grep发出符合条件的文件名:

String Name=request.getParameter("Name");
String email=request.getParameter("email");
String password=request.getParameter("password");
String contact=request.getParameter("contact");

Connection con=dbconnect.con;
PreparedStatement pst=
con.prepareStatement("insert into register(Name,email,password,contact) values(?,?,?,?)");
pst.setString(1,Name);
pst.setString(2,email);
pst.setString(3,password);
pst.setString(4,contact);

int i=pst.executeUpdate();

grep "add comment here" -r . --include \*.txt -l | xargs sed -i '/line1/a line2/' grep递归搜索当前目录中的文件,-r .告诉grep只考虑--include \*.txt个文件,而.txt表示只打印那些文件的名称包含模式,没有别的。