-
#grep -v "#" /etc/zabbix/zabbix_agentd.conf|grep -v "^$" 代表^$空格,-v代表不显示
-
获取脚本当前目录:BUILD_PATH=$(cd "$(dirname "$0")"; pwd)
pwd 是当前用户所在路径比如Dev-FandeiMac:~ code-pc$ /tmp/t.sh 1 2$0:/tmp/t.shpwd:~$(dirname "$0"):/tmp
-
获取文本内容的第几行
wc -l a.txt 统计a.txt 行数查看文件a.txt的第190行到196行,sed -n '190,196p' a.txt如果查看某一行用sed -n '190,1p' a.txtsed -n 'a,bp' a.txt 读取自第a行到第b行的数据
if(a > b ) return 第a行
-
实现变量+1
i=`expr $i + 1`
-
ret=$(cat /etc/ansible/hosts |awk '{if($1=="'$1'"){print$1" "$2}}')
输出第一列符合某值的行的第一二列
其中"'$1'"代表外部变量,不是指第一列
-
a 追加内容 sed ‘/匹配词/a要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)
i 插入内容 sed ‘/匹配词/i要加入的内容’ example.file 将内容插入到匹配的行目标的上一行位置)
示例:
#我要把文件的包含“chengyongxu.com”这个关键词的行前或行后加入一行,内容为“allow chengyongxu.cn”
行前加
sed -i '/allow chengyongxu.com/iallow chengyongxu.cn' the.conf.file
行前后
sed -i '/allow chengyongxu.com/aallow chengyongxu.cn' the.conf.file
sed -i '/1/a ' t.txt
在t.txt中找到一行内容为1,然后再改行后面写入t(mac不能用)
-
在一行的两段添加内容
sed 's/$/&tail/g' test.txt 每行尾添加tail
sed 's/^/head&/g' test.txt 每行头添加head
-
精确匹配一个进程
echo "[INFO LOG][`date +%y/%m/%d-%H:%M:%S`]:ps -efww |grep /data/C++/log|grep logd|grep -v start.sh|grep -v grep"
-
显示匹配行的行号
sed -n '/sjob_exec.sh/=' /etc/crontab显示匹配的行内容sed -n '/sjob_exec.sh/p' /etc/crontab修改指定行的内容sed -i "row s/#//" /etc/crontab修改匹配行row=$(sed -n '/sjob_exec.sh/=' /etc/crontab)sed -i "$row s/#//" /etc/crontab