sed的用法
替换
sed -i 's/root/ROOT/g' /etc/passwd/ 把root换成ROOT
sed -i 's/^root/ROOT/g' /etc/passwd 把root开头的替换成ROOT
sed -i 's/nologin$/root/g' /etc/passwd 把nologin结尾的换成root
sed -i 'nologin$/&_root' /etc/passwd 替换成nologin_root
打印
sed -n '3p' num.txt 打印第三行
sed -n '2,4p' num.txt 打印2-4行
sed -n '2,+3p' num.txt 从第二行开始,打印三行 2345
sed -n '/^$/p' /etc/passwd 打印空行
sed -n '/2 ~2p' num.txt 打印偶数行
sed -n '/1 ~2p' num.txt 打印奇数行
删除
sed -i '2d' num.txt 删除第二行 追加
sed -i '2a zhang' num.txt 在第二行后边追加zhang(第三行)
sed -i '/zhang/a bo' /etc/passwd 匹配zhang字段并且在后一行追加bo
插入
sed -i '3i xxx' num.txt 在第三行插入xxx
sed -i '/^3/i san' num.txt 在3开头的前一行插入
sed -i '/nologin$/i zhangsna' 在nologin结尾的插入
替换(c 整行替换)
sed '/root/c zhang' num.txt 将root行替换成zhan
写入
sed '/^root/w /etc/bo.txt' /etc/passwd 把root开头的行写入到/etc/bo.txt
读
sed -i 'r zhang.txt' bo.txt 把zhang.txt中的内容插入到bo.txt中
sed -i '2r zhang.txt' bo.txt 插入到bo.txt第二行
awk
awk '/root/ {print}' /etc/passwd 打印出有root的行
awk -F : '{print $NF}' /etc/passwd 打印最后一个字段
awk -F : '{print $(NF-1)}' /etc/passwd打印倒数第二个字段
awk -F : 'NR==2 {print}' /tmp/passwd 打印第二行
awk -F : 'NR==3 {print $4}' /etc/passwd 打印第三行的第四个字段
awk 'NR>3 {print}' a.txt 打印第三行以后的内容
awk -F : '/nologin/{print toupper($1)}' num.txt >zhang.txt 把nologin变成大写保存在zhang.txt
awk -F : '/NOLOGIN/{print tolower($1)}' zhang.txt >xiao.txt 把zhang.txt中变成小写保存在xiao.txt中