# cat /proc/meminfo |grep -w "MemTotal"
使用tr命令截取字符串
① 如果你只想看文件的前100行,可以使用head命令,如
head -100 ?filename
tail?-100 ?filename?或 tail -n?100 ?filename
截取的文件可以用重定向输入到新的文件中:
head -100 ?filename a.txt
也可以在robot里面使用read 打印出来
使用命令:
方法二:直接使用 netstat ? -anp ? | ? grep?portno
查看端口命令
linux替换目录下所有文件中的某字符串
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做:
sed -i "s/zhangsan/lisi/g" +grep zhangsan -rl /modules+
解释一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri "php"
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "php" -l
ip addr? 查看ip地址
① 例子
提取字符串以下字符串 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"'
参考链接:
从 截去 的角度上说,总结为: 左#右%
从 截取 的角度上说,反过来.
其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串), * 是通配符的一种,表示任意长度的字符串.
*chars 连起来使用的意思是:忽略左边的所有字符,直到遇见 chars(chars 不会被截取).
如果希望直到最后一个指定字符(子字符串)再匹配结束,那么可以使用##,具体格式为:
使用%号可以截取指定字符(或者子字符串)左边的所有字符,具体格式如下:
请注意 * 的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以*应该位于 chars 的右侧.其他方面%和#的用法相同,这里不再赘述,仅举例说明: