以下命令不会在一行中重复每个出现的过程...
input_file.txt:
<!--:nl-->hond <span>bob</span><!--:fr-->chien <span>bob</span><!--:nl-->kat<!--:fr-->chat
<!--:nl-->hond<!--:fr-->chien<!--:nl-->kat<!--:fr-->chat
错误的sed命令:
sed -e 's/\(\<\!--\:nl\--\>\).*\(\<\!--\:fr\--\>\)/\1\2/g' input_file.txt > output_file.txt
当前output_file.txt结果:
<!--:nl--><!--:fr-->chat
所需的output_file.txt结果:
chien <span>bob</span>chat
chienchat
[编辑] hond,chien,kat和chat可能会在其周围放置HTML标签,需要保留...
答案 0 :(得分:0)
您可以使用此sed
:
sed 's/<!--:nl-->[^<]*<!--:fr-->//g' file
答案 1 :(得分:0)
关注awk
也可以帮助您。
awk -F'<!--:nl-->|<!--:fr-->' '{print $3$5}' Input_file
说明: 只需将字符串<!--:nl-->
或<!--:fr-->
作为字段分隔符,然后打印第3行和第5列(根据您的输出要求)。