我需要将文本从1个文件添加到2个标签之间的多个文件中。所有文件都具有相同的扩展名.sh,但名称不同,并且全部位于子目录中。
我尝试修改它,但是它仅适用于搜索和替换:
com.itextpdf.text.Document mDoc = new com.itextpdf.text.Document();
String mFileName = new SimpleDateFormat("YYYY-MM-DD-HH-MM-SS", Locale.getDefault()).format(System.currentTimeMillis());
String mFilePath = Environment.getExternalStorageDirectory() + "/" + mFileName + ".pdf";
try
{
PdfWriter.getInstance(mDoc, new FileOutputStream(mFilePath));
mDoc.open();
for(int d = 0; d < g; d++)
{
String mtext = answers.get(d);
mDoc.add(new Paragraph(mtext));
}
mDoc.close();
}
catch (Exception e)
{
}
}
file1.txt
file=$(cat file1.txt)
replace="s/end=date +%s/$file/g";
find . -type f -name '*.sh' -print0 | xargs -0 sed -i "$replace"
最终输出和file1.txt的内容作为新行添加到end.date +%s下,添加到所有.sh文件中
some text here
some text here
some text here
some text here
some text here
答案 0 :(得分:0)
在bash shell上尝试gnu sed,在没有-i选项的情况下对其进行测试;
sed -E '/end=date\s+\+%s/r file1.txt' *.sh
在测试后,将-i选项添加到实际编辑中,例如sed -Ei
....
要递归搜索子中的文件,请使用find
进行操作,然后将找到的文件发送到sed
查找〜+ -iname'* .sh'-exec sed -E'/ end = date \ s ++%s / r file1.txt''{}'+