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\': }
# ~
我正在尝试在以下字符串中提取 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\': }
# ~