Linux学习 脚本中常用的命令

grep -v 筛选内容除了 -v后面的

遍历命令 for a in $(命令:cat file )

'dirname $0' 显示当前脚本所在路径

sed 替换:

sed 's /test/task/2' xxx.txt 把第二次出现的test替换为task

sed 's /test/task/g' xxx.txt 把所有出现的test都替换成task

sed -n 's/tset/task/p' xxx.txt 把所有tset替换成task的行打印出来

sed 's/test/task/w xxx.txt aaa.txt 将修改的内容打印到aaa.txt中

sed '2,3s/test/task/' xxx.txt 把第2,3行的test替换成task

sed '2,$s/test/task' 从第二行开始 后面的都替换

sed -i 's/2/10/g' a.txt 把a.txt中得所有2替换成10

sed -i '2a ppppppp' test.txt #在第二行之后添加数据,并写入到原文件

sed 删除命令:delete

sed '2,3d' xxx.txt 删除第二三行

sed 'wanggang 1 d' xxx.txt 删除里面还有 wanggang 1 的行

echo " wanggang " | sed 'i\gaomin ' 'i 把前面的wanggang插入到gaomin前面

echo "wanggang " |sed 'a\gaomin ' 'a 插入到文本的后面

sed打印命令:print

sed -n'/dev/sda/p' dh.txt -n禁止输出其他行 p 打印 打印匹配到/dev/sda/的行

sed -n'/num 1/{ 打印num所在行

> = = 代表num行数

> p p 表示打印

>}' data.txt

sed -i 'N;4addpdf' a.txt 第四行前添加

sed -i 'N;4ieepdf' a.txt 第四行后添加

sed处理文件 :w

sed -n 'w/data.txt/' bak.txt 把bak.txt的内容 打印到 data.txt

sed -n 'abc/w/data.txt' bak.txt 把bak.txt里面含有abc的行打印到data.txt里面

echo "The cat sleeps in his hat" | sed 's/.at/"&"/g'

The "cat" sleeps in his "hat" &把匹配到的.at 里面都加引号

gawk进阶

gawk '{print $1}' data.txt 查询data文件中每一行第一个字段

gawk -F: '{print $1}' /etc/passwd 分行查询文件中的内容

gawk中支持多个命令同时执行 在命令中用 ;分隔就行

echo " my name is wanggang" |gawk '{$4="ganggang";print $0}' $4是把第四个字符换成ganggang,$0打印全部

echo red | passwd --stdin $name passwd --stdin $name是更改$name变量的密码,$name变量指代上面for循环的三个用户xp ,wrg, lct

加上--stdin是接受echo后面的字符串(red)做为密码,密码是red

awk的使用:

last -5 |awk '{print $1}' 打印 last -5输出的第一列内容

cat /etc/passwd |awk -F ':' '{print $1}' 以:为分隔符 打印passwd的第一列

cat /etc/passwd |awk -F ':' '{print $1"\t"$7}' 打印passwd的第一列和第七列用\t分割

cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/bash"}'

打印passwd 在第一行添加name,shell 最后一行添加 blue,/bin/bash,第一列和第七列用,分开

cat '/etc/passwd' |awk -F : '/sshd/{print $0}' 打印匹配到 sshd的行

cat text | awk -F '\t' '$2 >= 10 {print $1, " is Expensive"}'

打印text里面第二列大于等于10的行的第一列在后面加is Expensive

cat text | awk -F '\t' '$2 >= 10 {print $1, " is Expensive"} $2

打印 text里面 第二列大于等于10的第一列后面加 is Expensive ,第二列小于等于9的第一列后面加is cheap

NR==3 只处理显示出来的第三个数据

echo $(date -d last-day +%Y-%m-%d) 昨天的日期命令。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值