# cat /proc/meminfo |grep -w "MemTotal"
使用tr命令截取字符串
参考链接:
从 截去 的角度上说,总结为: 左#右%
从 截取 的角度上说,反过来.
其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串), * 是通配符的一种,表示任意长度的字符串.
*chars 连起来使用的意思是:忽略左边的所有字符,直到遇见 chars(chars 不会被截取).
如果希望直到最后一个指定字符(子字符串)再匹配结束,那么可以使用##,具体格式为:
使用%号可以截取指定字符(或者子字符串)左边的所有字符,具体格式如下:
请注意 * 的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以*应该位于 chars 的右侧.其他方面%和#的用法相同,这里不再赘述,仅举例说明:
① 例子
提取字符串以下字符串 error: 与 : 之间的子字符串.并消除空格.
该命令涉及 sed 命令的'反向引用'章节, \1 代表 (.*)
nv_net_tools.h1
note: 在以上编译过程中我们发现,编译器提示说找不到nv_net_tools.h文件,而现实中我们也不需要这个文件的包含了,需要删除包含nv_net_tools.h 文件中的该行代码.
目标字符串
//提取 from ?内容echo
//提取 to 内容echo
//提取 url ?内容echo
//提取 level 内容echo
echo?ret_val?is?:?[?$ret_val?]from="$(echo?$ret_val?|?sed?'s/.*from\"\:\(.*\)/\1/'?|?cut?-d?','?-f1?|?sed?'s/"//g')"
echo?from:?$from
to="$(echo?$ret_val?|?sed?'s/.*to\"\:\(.*\)/\1/'?|?cut?-d?','?-f1?|?sed?'s/"//g')"
echo?to:?$to
url="$(echo?$ret_val?|?sed?'s/.*url\"\:\(.*\)/\1/'?|?cut?-d?','?-f1?|?sed?'s/"//g')"
echo?url:?$url
level="$(echo?$ret_val?|?sed?'s/.*level\"\:\(.*\)/\1/'?|?cut?-d?','?-f1?|?sed?'s/"//g')"
执行结果:
level:?0
I.总结
要注意命令行执行,与脚本文件执行之间的差异性.
可以用awk、sed、tr、perl都能实现
set s = '"stratum":{"accepted_shares":1,"algorithm"'