【问题标题】:Removing extra space at start in bash在bash开始时删除额外的空间
【发布时间】:2015-02-26 06:42:50
【问题描述】:

我正在尝试获取 extension_dir 并将其存储在变量中

php -i | grep extension_dir给了

extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules 作为输出

我想将/usr/lib64/php/modules 存储在一个变量中

这是我尝试过的 php -i | grep extension_dir | cut -d'>' -f3/usr/lib64/php/modules

如何去掉开头的空格

我欢迎任何更清洁的解决方案

【问题讨论】:

  • 你可以试试这个。sed 's/\(.*\) => \(.*\) => \(.*\)/\2/'

标签: php regex bash awk sed


【解决方案1】:

你的命令行

php -i | grep extension_dir | cut -d '>' -f3

可以修改为

php -i | grep extension_dir | cut -d '>' -f3|cut -c 2-

从第二个字符开始忽略第一个空格字符

【讨论】:

    【解决方案2】:
    php -i | sed -n '/extension_dir/ s/.*=> *//p'
    

    一个简单的sed(或awk)就足够了,中间不需要grep

    【讨论】:

      【解决方案3】:

      使用 sed:

      php -i | grep extension_dir | sed 's/.* => //'
      

      【讨论】:

        【解决方案4】:

        使用awk 代替cut

        php -i | grep extension_dir | awk -F '=> ' '{print $3}'
        

        甚至可以使用 awk 删除 grep:

        php -i | awk -F '=> ' '/extension_dir/{print $3}'
        

        【讨论】:

        • 感谢有识之士
        • 并将其存储在变量中:var=$(php -i | awk -F '=> ' '/extension_dir/{print $3}')
        猜你喜欢
        • 1970-01-01
        • 2020-10-16
        • 2013-08-21
        • 1970-01-01
        • 2021-09-11
        • 2016-11-23
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多