用编号列表替换字符串

时间:2017-05-19 00:52:41

标签: awk sed grep

以下是该方案:

  • 使用Android Markdown应用
  • 创建了编号列表
  • 导入列表到Emacs
  • 出于某种原因,超过174的所有数字都有[[tel:INT]]行前缀

    172.
    173.
    174.
    [[tel:175][175]].
    [[tel:176][176]].
    [[tel:177][177]].
    

我想查找[[tel:INT]]的每个实例,并将其替换为175176177等。

问题:

什么是grep / sed / awk这个列表的最佳方式?

3 个答案:

答案 0 :(得分:1)

这应该做......

sed -E 's/\[\[.*\[(.*)\]\]/\1/' file

172.         
173.    
174.    
175.     
176.   
177.   

答案 1 :(得分:0)

使用 sed

sed -E 's/\[\[tel:([0-9]+)\]\[[0-9]+\]\]/\1/g' tmp.txt

输出:

172.
173.
174.
175.
176.
177.

答案 2 :(得分:0)

由于其他答案为sed

grep -Eo '[0-9]+' input.txt | sort -un

给定输入文件input.txt

172.
173.
174.
[[tel:175][175]].
[[tel:176][176]].
[[tel:177][177]].

然后:

grep -Eo '[0-9]+' input.txt | sort -un

结果:

172
173
174
175
176
177