Bash - 提取具有特殊字符的字符串中的子字符串

Bash - extract substring in a string with special characters

我正在尝试在以下字符串中提取 43(downloader/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\':},return:

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)

有什么想法吗?

在此先感谢您的帮助!

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

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

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

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