我有很多html文件,现在我需要在每个文件中插入一段js脚本。是否有一些命令行可以在终端中使用,以便立即将所有文件添加到所有文件中?
答案 0 :(得分:2)
使用此Perl one-liner:
perl -pe 's!(?<=</head>)!YOUR_SNIPPET!g' *.html
一旦您确定它有效,要直接替换文件,请使用perl -i -pe ...
或perl -i'.bak' -pe ...
进行备份。
这只是编写正则表达式的几种方法之一。
注释
!
是分隔符(不能使用/
,因为它是</head>
的一部分)(?<=</head>)
断言紧接当前位置之前的是</head>
YOUR_SNIPPET
复杂代码段?声明环境变量
如果代码段包含撇号和!
字符,则需要进行一些转义或将代码段声明为环境变量。例如:
env mysnippet="snip'it" perl -pe 's!(?<=</head>)!$ENV{mysnippet}!g' *.html
<强>参考强>