[root@localhost learn-script]# rpm -qai | head > ak
[root@localhost learn-script]# cat ak
Name : openssh-server
Version : 6.6.1p1
Release : 31.el7
Architecture: x86_64
Install Date: Thu 05 Oct 2017 02:01:54 PM PDT
Group : System Environment/Daemons
Size : 943606
License : BSD
Signature : RSA/SHA256, Sun 20 Nov 2016 11:48:43 AM PST, Key ID 24c6a8a7f4a80eb5
Source RPM : openssh-6.6.1p1-31.el7.src.rpm
要查找size大小:
----------------------------
有如下方法:
awk -F: '/Size/{print $2}' ak
awk -F: '/Size/' ak | awk -F: '{print $2}'
grep "Size" ak | awk -F: '{print $2}'
[root@localhost learn-script]# cat awktest
姓名,学号,地址,爱好
zhangpp,20150901,福建省福州市仓山区,跑步
zhangp,20150902,福建省泉州市南安市,登山
zhang123,20150903,福建省厦门市湖里区,羽毛球
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球
###将输出分隔符由逗号变为空格
[root@localhost learn-script]# awk -F, 'BEGIN{OFS=" "}{print $1,$2,$3,$4,$5}' awktest
姓名 学号 地址 爱好
zhangpp 20150901 福建省福州市仓山区 跑步
zhangp 20150902 福建省泉州市南安市 登山
zhang123 20150903 福建省厦门市湖里区 羽毛球
lilin 20150902 福建省泉州市南安市 登山
chenyi 20150903 福建省厦门市湖里区 骑行
jiajia 20150902 福建省泉州市南安市 篮球
nihao 20150903 福建省厦门市湖里区 羽毛球
##此时并没有改变awktest内容,需要将输出屏幕内容打到临时文件,再将临时文件替换awktest,具体如下:
[root@localhost learn-script]# awk -F, 'BEGIN{OFS=" "}{print $1,$2,$3,$4,$5}' awktest > tmp
[root@localhost learn-script]# mv tmp awktest
mv: overwrite ‘awktest’? y
[root@localhost learn-script]# cat awktest
姓名 学号 地址 爱好
zhangpp 20150901 福建省福州市仓山区 跑步
zhangp 20150902 福建省泉州市南安市 登山
zhang123 20150903 福建省厦门市湖里区 羽毛球
lilin 20150902 福建省泉州市南安市 登山
chenyi 20150903 福建省厦门市湖里区 骑行
jiajia 20150902 福建省泉州市南安市 篮球
nihao 20150903 福建省厦门市湖里区 羽毛球
#将学号姓名对调显示,此时不需要指定输入分隔符,因为awk默认分隔符就是空格
[root@localhost learn-script]# awk '{print $2,$1,$3,$4}' awktest
学号 姓名 地址 爱好
20150901 zhangpp 福建省福州市仓山区 跑步
20150902 zhangp 福建省泉州市南安市 登山
20150903 zhang123 福建省厦门市湖里区 羽毛球
20150902 lilin 福建省泉州市南安市 登山
20150903 chenyi 福建省厦门市湖里区 骑行
20150902 jiajia 福建省泉州市南安市 篮球
20150903 nihao 福建省厦门市湖里区 羽毛球
#将爱好信息提取出来,sort用于排序,将相同爱好的放在一起,用uniq删除相同的爱好
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq
爱好
登山
篮球
羽毛球
跑步
骑行
#统计各个爱好的人数
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c
1 爱好
2 登山
1 篮球
2 羽毛球
1 跑步
1 骑行
#统计各个爱好的人数,并将其输出重定向到tmp文件中
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c > tmp
#输出爱好登山的人数
[root@localhost learn-script]# awk '/登山/{print $1}' tmp
2
#或者
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c | awk '/登山/{print $1}'
2
---------------------------------------------------------
[root@localhost learn-script]# cat sedtest
姓名,学号,地址,爱好
zhangpp,20150901,福建省福州市仓山区,跑步
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除第2,3行
[root@localhost learn-script]# sed '2,3d' sedtest
姓名,学号,地址,爱好
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除第1行
[root@localhost learn-script]# sed '1d' sedtest
zhangpp,20150901,福建省福州市仓山区,跑步
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除2,3两行,并更改到源文件,有两个办法
[root@localhost learn-script]# sed '2,3d' sedtest > tmp
[root@localhost learn-script]# mv tmp sedtest
mv: overwrite ‘sedtest’? y
#或者
sed -i '2,3d' sedtest
#将sedtest中以chen打头的信息显示出来
[root@localhost learn-script]# sed -n '/^chen/p' sedtest
chenyi,20150903,福建省厦门市湖里区,骑行
chener,20150903,福建省厦门市湖里区,骑行
#如果不加-n,则显示如下
[root@localhost learn-script]# sed '/^chen/p' sedtest
姓名,学号,地址,爱好
chenyi,20150903,福建省厦门市湖里区,骑行
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#提取出爱好信息
[root@localhost learn-script]# sed -n '/^chen/p' sedtest | awk -F, '{print $4}'
骑行
骑行
#将nihao 的爱好羽毛球改为睡觉
[root@localhost learn-script]# sed -n '/nihao/s/羽毛球/睡觉/p' sedtest
nihao,20150903,福建省厦门市湖里区,睡觉羽毛球
[root@localhost learn-script]# sed -n '/nihao/s/羽毛球/睡觉/pg' sedtest
nihao,20150903,福建省厦门市湖里区,睡觉睡觉
[root@localhost learn-script]# cat ak
Name : openssh-server
Version : 6.6.1p1
Release : 31.el7
Architecture: x86_64
Install Date: Thu 05 Oct 2017 02:01:54 PM PDT
Group : System Environment/Daemons
Size : 943606
License : BSD
Signature : RSA/SHA256, Sun 20 Nov 2016 11:48:43 AM PST, Key ID 24c6a8a7f4a80eb5
Source RPM : openssh-6.6.1p1-31.el7.src.rpm
要查找size大小:
----------------------------
有如下方法:
awk -F: '/Size/{print $2}' ak
awk -F: '/Size/' ak | awk -F: '{print $2}'
grep "Size" ak | awk -F: '{print $2}'
[root@localhost learn-script]# cat awktest
姓名,学号,地址,爱好
zhangpp,20150901,福建省福州市仓山区,跑步
zhangp,20150902,福建省泉州市南安市,登山
zhang123,20150903,福建省厦门市湖里区,羽毛球
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球
###将输出分隔符由逗号变为空格
[root@localhost learn-script]# awk -F, 'BEGIN{OFS=" "}{print $1,$2,$3,$4,$5}' awktest
姓名 学号 地址 爱好
zhangpp 20150901 福建省福州市仓山区 跑步
zhangp 20150902 福建省泉州市南安市 登山
zhang123 20150903 福建省厦门市湖里区 羽毛球
lilin 20150902 福建省泉州市南安市 登山
chenyi 20150903 福建省厦门市湖里区 骑行
jiajia 20150902 福建省泉州市南安市 篮球
nihao 20150903 福建省厦门市湖里区 羽毛球
##此时并没有改变awktest内容,需要将输出屏幕内容打到临时文件,再将临时文件替换awktest,具体如下:
[root@localhost learn-script]# awk -F, 'BEGIN{OFS=" "}{print $1,$2,$3,$4,$5}' awktest > tmp
[root@localhost learn-script]# mv tmp awktest
mv: overwrite ‘awktest’? y
[root@localhost learn-script]# cat awktest
姓名 学号 地址 爱好
zhangpp 20150901 福建省福州市仓山区 跑步
zhangp 20150902 福建省泉州市南安市 登山
zhang123 20150903 福建省厦门市湖里区 羽毛球
lilin 20150902 福建省泉州市南安市 登山
chenyi 20150903 福建省厦门市湖里区 骑行
jiajia 20150902 福建省泉州市南安市 篮球
nihao 20150903 福建省厦门市湖里区 羽毛球
#将学号姓名对调显示,此时不需要指定输入分隔符,因为awk默认分隔符就是空格
[root@localhost learn-script]# awk '{print $2,$1,$3,$4}' awktest
学号 姓名 地址 爱好
20150901 zhangpp 福建省福州市仓山区 跑步
20150902 zhangp 福建省泉州市南安市 登山
20150903 zhang123 福建省厦门市湖里区 羽毛球
20150902 lilin 福建省泉州市南安市 登山
20150903 chenyi 福建省厦门市湖里区 骑行
20150902 jiajia 福建省泉州市南安市 篮球
20150903 nihao 福建省厦门市湖里区 羽毛球
#将爱好信息提取出来,sort用于排序,将相同爱好的放在一起,用uniq删除相同的爱好
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq
爱好
登山
篮球
羽毛球
跑步
骑行
#统计各个爱好的人数
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c
1 爱好
2 登山
1 篮球
2 羽毛球
1 跑步
1 骑行
#统计各个爱好的人数,并将其输出重定向到tmp文件中
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c > tmp
#输出爱好登山的人数
[root@localhost learn-script]# awk '/登山/{print $1}' tmp
2
#或者
[root@localhost learn-script]# awk '{print $4}' awktest | sort | uniq -c | awk '/登山/{print $1}'
2
---------------------------------------------------------
[root@localhost learn-script]# cat sedtest
姓名,学号,地址,爱好
zhangpp,20150901,福建省福州市仓山区,跑步
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除第2,3行
[root@localhost learn-script]# sed '2,3d' sedtest
姓名,学号,地址,爱好
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除第1行
[root@localhost learn-script]# sed '1d' sedtest
zhangpp,20150901,福建省福州市仓山区,跑步
lilin,20150902,福建省泉州市南安市,登山
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#删除2,3两行,并更改到源文件,有两个办法
[root@localhost learn-script]# sed '2,3d' sedtest > tmp
[root@localhost learn-script]# mv tmp sedtest
mv: overwrite ‘sedtest’? y
#或者
sed -i '2,3d' sedtest
#将sedtest中以chen打头的信息显示出来
[root@localhost learn-script]# sed -n '/^chen/p' sedtest
chenyi,20150903,福建省厦门市湖里区,骑行
chener,20150903,福建省厦门市湖里区,骑行
#如果不加-n,则显示如下
[root@localhost learn-script]# sed '/^chen/p' sedtest
姓名,学号,地址,爱好
chenyi,20150903,福建省厦门市湖里区,骑行
chenyi,20150903,福建省厦门市湖里区,骑行
jiajia,20150902,福建省泉州市南安市,篮球
nihao,20150903,福建省厦门市湖里区,羽毛球羽毛球
chener,20150903,福建省厦门市湖里区,骑行
chener,20150903,福建省厦门市湖里区,骑行
jiaren,20150902,福建省泉州市南安市,足球
nini,20150903,福建省厦门市湖里区,羽毛球
#提取出爱好信息
[root@localhost learn-script]# sed -n '/^chen/p' sedtest | awk -F, '{print $4}'
骑行
骑行
#将nihao 的爱好羽毛球改为睡觉
[root@localhost learn-script]# sed -n '/nihao/s/羽毛球/睡觉/p' sedtest
nihao,20150903,福建省厦门市湖里区,睡觉羽毛球
[root@localhost learn-script]# sed -n '/nihao/s/羽毛球/睡觉/pg' sedtest
nihao,20150903,福建省厦门市湖里区,睡觉睡觉