我有一个包含以下行的文件:
John
Some String 1234
Mary
another string 3445
Tom
Cat Dog 2367
即。每个备用行以数字结尾,其他地方没有数字。 我想添加< / BR>在数字后面标记,以便输出如下:
John
Some String 1234</br>
Mary
another string 3445</br>
...
我尝试使用sed命令:
sed -i 's/[0-9]+/1<\/br>/' filename.html
但错误了。 我该如何完成这项工作?
答案 0 :(得分:3)
您可以使用:
sed -i.bak 's~[0-9]\+$~&</br>~' file
现在文件内容将是:
cat file
John
Some String 1234</br>
Mary
another string 3445</br>
Tom
Cat Dog 2367</br>
答案 1 :(得分:2)
使用这个:
sed 's/\([0-9]\+\)$/\1<br\/>/' your.txt
简短说明:
[0-9]\+
行中具有不同长度$
的数字会匹配到匹配组\( ... \)
中。它将替换为匹配组\1
加上<br\/>
标记的值。不要错过我用反斜杠\
转义了几个字符,因为它们在模式中有特殊含义。
答案 2 :(得分:2)
试试这个:
sed -ri.bak '/[0-9]+$/ s/$/<\/br>/g' filename.html
答案 3 :(得分:0)
知道了,我在匹配的模式周围缺少()
。
所以它就像:
sed -i 's/\([0-9][0-9]*\)/\L\1<\/br>/I' filename.html
答案 4 :(得分:0)
由于数字始终位于偶数行的末尾,因此 GNU sed
的扩展范围地址就足够了:
sed -i.bak '2~2s#$#</br>#' file
输出:
John
Some String 1234</br>
Mary
another string 3445</br>
Tom
Cat Dog 2367</br>