我知道<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i = 0; i < imgDefer.length; i++) {
if (imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
}
}
}
window.onload = init;
</script>
适用于行的开头,而sed 's/^/"/g'
适用于结尾,但为什么sed 's/$/"/g'
不适用于这两者?
答案 0 :(得分:4)
[^$]
表示“除美元符号外的任何字符”。所以说sed 's/[^$]/"/g'
您要用"
替换所有字符,$
除外(credits to Ed Morton):
$ echo 'he^llo$you' | sed 's/[^$]/"/g'
""""""$"""
要说:匹配^
或$
,您需要使用( | )
表达式:
sed 's/\(^\|$\)/"/g' file
或者,如果-r
中有sed
:
sed -r 's/(^|$)/"/g' file
$ cat a
hello
bye
$ sed -r 's/(^|$)/"/g' a
"hello"
"bye"
答案 1 :(得分:2)
sed 's/.*/"&"/' YourFile
使用完整行作为模式替换&
。
在这种情况下,g
不需要,因为每行只有1次出现整行(sed
的默认行为逐行读取)
答案 2 :(得分:0)
sed -e 's/^/"/' -e 's/$/"/' filename.txt
"tag1"
"tag2"
这也可以满足您的目的,您也可以使用任何其他模式更改双引号(“),例如:
sed -e 's/^/<<</' -e 's/$/>>>' data.txt
<<<tag1>>>
<<tag2>>>