BASH: How to extract substring that is surrounded by specific text

前端 未结 3 1400
囚心锁ツ
囚心锁ツ 2021-01-28 22:42

I am trying to extract numbers from file names that follow a specific pattern:

file-8923489_something.txt
another_file-8923489_something.txt
some-other_file-8923         


        
3条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-28 23:35

    Is it possible to do this using operators only, ...

    $ filename="file-8923489_something.txt"
    $ file=${foo//[^0-9]/}
    $ echo $file
    8923489
    

    You might want to refer to Shell Parameter Expansion.

    Alternatively, you can say:

    $ file=$(tr -dc '[[:digit:]]' <<< "$filename")
    $ echo $file
    8923489
    

提交回复
热议问题