关于awk命令使用

awk命令:三剑客之二
基础应用:
【awk  '{print}'  文件名】:在终端预览这个文件的全部内容
【awk  '{print $0}'  文件名】:$0表示第0列,也就是全部内容
【awk  '{print $2}'  文件名】:预览该文件的第二列内容
【awk  '{print $1,$3,$5}' 文件名】:预览指定的某几列内容
【awk  '{print NF,$NF}'  文件名】:NF表示总列数,$NF就代表最后一列
【awk  '{print NF,$(NF-1)}'  文件名】:$(NF-1)则代表倒数第二列
小结:awk是用空格和制表符作为列的划分的
按行筛选:
【awk  'NR==2{print $1}' 文件名】:预览第二行的第一列内容
【awk  'NR!=2{print}' 文件名】:预览除了第二行的其它全部内容
【awk  'NR==1,NR==5{print}' 文件名】:预览第一行到第五行的全部内容
【awk  'NR==1;NR==5{print $1}'  文件名】:预览第一行的全部和第五行的第一列内容
【awk  'NR<4{print}' 文件名】:预览前三行的全部内容
【awk '{print NR,$0}' 文件名】:预览文件的全部内容,并且每行加上序号
添加“开始”和“结束”任务:
【awk 'BEGIN{print "==开始=="}{print}END{print "==结束=="}' 文件名】
利用正则表达式搜索:
【awk '/女/{print}' emp.data】:搜索包含“女”的数据行
【awk '/经理$/{print}' emp.data】:搜索以“经理”结尾的数据行
【awk '/^[pP]/{print}' emp.data】:搜索以小写p或大写P开头的数据行
【awk '/^[a-z]/{print}' emp.data】:搜索以小写字母开头的数据行
【awk '/^[A-Z]/{print}' emp.data】:搜索以大写字母开头的数据行
【awk '/^[a-zA-Z]/{print}' emp.data】:搜索以字母开头的数据行
【awk '/^[0-9]/{print}' emp.data】:搜索以数字开头的数据行
【awk '/Apple/{if($2=="男")print $1,$4}' emp.data】:预览名字叫Apple,且性别为男的信息
添加选项:
【awk -F'❤' -v OFS='😍' -f order.awk 文件名】:
  -F表示源文件内容不是用空格分隔的,是用❤分割的
  -v OFS 表示预览的时候要用😍分割
  -f order.awk 表示预览命令写在了order.awk文件中,直接读取该文件即可
【{print $1,$3,$2}】:这是order.awk里面的内容,不用加引号
---------------------------------------------------------------
sed命令:功能最多的剑客
一:预览打印功能:p命令
【sed  -n  '$p'  文件名】:预览最后一行内容
【sed  '$p'  文件名】:预览文件全部内容,再打印一次最后一行
【sed  -n  '7p'  文件名】:预览第七行内容
【sed  -n  '2,3p'  文件名】:预览第二行到第三行内容
【sed  -n  '/搜索内容/p' 文件名】:用内容或正则搜索
二:删除命令:d命令【内存中删除】
【sed  '$d'  文件名】:删除最后一行
【sed  '3d'  文件名】:删除第三行
【sed  '2,4d' 文件名】:删除第二行到第四行
【sed  '/搜索内容/d' 文件名】:根据搜索内容删除
【sed  '/^$/d'  文件名】:删除空白行
三:替换命令:s命令【内存中替换】
【sed  '3s/apple/APPLE/'  文件名】:将第三行的第一个apple替换成APPLE
【sed  's/xiaomi/huawei/g' 文件名】:将每行出现的所有xiaomi都换成huawei
【sed  '2,4s/huawei/apple/' 文件名】:将第二行到第四行首次出现的华为换成apple
【sed  -n  's/apple/mi/gp' 文件名】:将每行的每个apple都换成mi,并预览换掉之后的数据
四:插入命令:a和i【内存中替换】append(追加),insert(插入)
【sed  'i\apple'  文件名】:在每行内容的上面插入apple
【sed  '3i\apple' 文件名】:在第三行内容的上面插入apple
【sed  'a\banana' 文件名】:在每行的下面插入 banana
【sed  '9a\banana' 文件名】:在第九行的下面插入banana
五:-e选项:一条命令执行多个操作
【sed -e '1,8d' -e 'a\___' -e 's/女/母/g' emp.data】:删除前8行,每行下面插入____,将女换成母
六:-i选项:让添加,删除,修改全部作用于源文件(慎重)
【sed -i '/^$/d' 文件名】: 删除了空白行
七:-f选项:将命令保存到文件中,下次直接读取即可
【sed -f order.sed  文件名】:将原本在单引号里的命令写在order.sed文件中,order.sed文件里不要加引号

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值