我正在尝试编写一个脚本,以递归方式从所有文件中搜索和删除htm和html标记。起点在运行脚本的命令中作为输入给出。生成的文件应保存在以_changed结尾的同一位置的新文件中。例如,start.html> start.html_changed。 这是我到目前为止写的脚本。它工作正常,但输出打印到终端,我希望它分别保存在文件中。
#!/bin/bash
sudo find $1 -name '*.html' -type f -print0 | xargs -0 sed -n '/<div/,/<\/div>/p'
sudo find $1 -name '*.htm' -type f -print0 | xargs -0 sed -n '/<div/,/<\/div>/p'
非常感谢任何帮助。
以下脚本运行正常,但不是递归的。我怎么能让它递归?
#!/bin/bash
for l in /$1/*.html
do
sed -n '/<div/,/<\/div>/p' $l > "${l}_nobody"
done
for m in /$1/*.htm
do
sed -n '/<div/,/<\/div>/p' $m > "${m}_nobody"
done
答案 0 :(得分:0)
只需编辑xargs
部分,如下所示:
xargs -0 -I {} sh -c "sed -n '/<div/,/<\/div>/p' {} > {}_changed"
<强>解释强>
-I {}
:设置占位符> {}_changed"
:重定向到_changed
后缀