【问题标题】:How to extract patterns form a text files in shell bash如何从 shell bash 中的文本文件中提取模式
【发布时间】:2014-01-03 09:35:19
【问题描述】:

我有一个文本文件,其中包含:

toto.titi.any=val1
toto.tata.any=val2
toto.tete.any=val2

如何从这个文件中提取tititatatete

应该是这样的

$ cat myfile.txt | sed '......' 

输出应该是

titi
tata
tete

【问题讨论】:

    标签: linux bash shell sed awk


    【解决方案1】:

    你真的需要sed吗?你可以使用cut:

    cut -d. -f2 filename
    

    【讨论】:

      【解决方案2】:

      使用 awk 你可以做到:

      awk -F. '{print $2}' file
      

      【讨论】:

        【解决方案3】:

        awk/cut 是解决这个问题的更好选择。

        这里是 sed 行和 grep 选项:

        sed -r 's/.*\.([^.]*)\..*/\1/'
        grep -Po '\.\K[^.]*(?=\.)' 
        

        【讨论】:

          【解决方案4】:

          awkcut 最适合这个

          您也可以逐行读取文件,并打印出需要的部分。

          $ IFS=.
          $ while read first interested others ; do echo $interested; done < file
          titi
          tata
          tete
          

          【讨论】:

            【解决方案5】:
            sed -n 's/^[^.]*.\([^.]*\)..*/\1/p' myfile.txt
            

            显示行内至少有 2 个点的点之间的第二个值

            【讨论】:

              猜你喜欢
              • 2014-04-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-01-02
              • 2020-03-31
              • 2015-08-16
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多