【问题标题】:Bash - extract substring in a string with special charactersBash - 在具有特殊字符的字符串中提取子字符串
【发布时间】:2021-01-21 01:48:57
【问题描述】:

我正在尝试在下面的字符串中提取43(下载器/request_count 结果):

OUT="[scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 21394, 'downloader/request_count': 43, 'downloader/request_method_count/GET': 43, 'downloader/response_bytes': 1030981, 'downloader/response_count': 43, 'downloader/response_status_count/200': 43, 'item_scraped_count': 41"

第一步,我做了value=${OUT#*request_count\':},它返回:

43, 'downloader/request_method_count/GET': 43, 'downloader/response_bytes': 1030981, 'downloader/response_count': 43, 'downloader/response_status_count/200': 43, 'item_scraped_count': 41

但是当我尝试删除正确的部分时,我得到一个错误:

value2=${value%,*} 

value2=$(cut -d, -f1 $value)

有什么想法吗?

提前感谢您的帮助!

【问题讨论】:

    标签: bash substring


    【解决方案1】:

    % 删除可能最短的字符串,使用%% 删除可能最长的字符串:

    value2=${value%%,*}
    #             ~~
    

    此外,您可能还想删除冒号后的空格:

    value=${OUT#*request_count\': }
    #                            ~
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-03
      • 2015-02-15
      • 2019-12-02
      • 2020-08-13
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2015-03-17
      相关资源
      最近更新 更多