[root@iz2ze76ybn73dvwmdij06zz ~]# cat monkey One day,a little monkey is playing by the well.一天,有只小猴子在井边玩儿. He looks in the well and shouts :它往井里一瞧,高喊道: “Oh!My god!The moon has fallen into the well!” “噢!我的天!月亮掉到井里头啦!” An older monkeys runs over,takes a look,and says,一只大猴子跑来一看,说, “Goodness me!The moon is really in the water!” “糟啦!月亮掉在井里头啦!” And olderly monkey comes over.老猴子也跑过来. He is very surprised as well and cries out:他也非常惊奇,喊道: “The moon is in the well.” “糟了,月亮掉在井里头了!” A group of monkeys run over to the well .一群猴子跑到井边来, They look at the moon in the well and shout:他们看到井里的月亮,喊道: “The moon did fall into the well!Come on!Let’get it out!” “月亮掉在井里头啦!快来!让我们把它捞起来!” Then,the oldest monkey hangs on the tree up side down ,with his feet on the branch . 然后,老猴子倒挂在大树上, And he pulls the next monkey’s feet with his hands.拉住大猴子的脚, All the other monkeys follow his suit,其他的猴子一个个跟着, And they join each other one by one down to the moon in the well. 它们一只连着一只直到井里. Just before they reach the moon,the oldest monkey raises his head and happens to see the moon in the sky,正好他们摸到月亮的时候,老猴子抬头发现月亮挂在天上呢 He yells excitedly “Don’t be so foolish!The moon is still in the sky!” 它兴奋地大叫:“别蠢了!月亮还好好地挂在天上呢!
直接查找符合条件的行
[root@iz2ze76ybn73dvwmdij06zz ~]# grep moon monkey “Oh!My god!The moon has fallen into the well!” “噢!我的天!月亮掉到井里头啦!” “Goodness me!The moon is really in the water!” “糟啦!月亮掉在井里头啦!” “The moon is in the well.” “糟了,月亮掉在井里头了!” They look at the moon in the well and shout:他们看到井里的月亮,喊道: “The moon did fall into the well!Come on!Let’get it out!” And they join each other one by one down to the moon in the well. Just before they reach the moon,the oldest monkey raises his head and happens to see the moon in the sky,正好他们摸到月亮的时候,老猴子抬头发现月亮挂在天上呢 He yells excitedly “Don’t be so foolish!The moon is still in the sky!”
查找反向符合条件的行
[root@iz2ze76ybn73dvwmdij06zz ~]# grep -v moon monkey One day,a little monkey is playing by the well.一天,有只小猴子在井边玩儿. He looks in the well and shouts :它往井里一瞧,高喊道: An older monkeys runs over,takes a look,and says,一只大猴子跑来一看,说, And olderly monkey comes over.老猴子也跑过来. He is very surprised as well and cries out:他也非常惊奇,喊道: A group of monkeys run over to the well .一群猴子跑到井边来, “月亮掉在井里头啦!快来!让我们把它捞起来!” Then,the oldest monkey hangs on the tree up side down ,with his feet on the branch . 然后,老猴子倒挂在大树上, And he pulls the next monkey’s feet with his hands.拉住大猴子的脚, All the other monkeys follow his suit,其他的猴子一个个跟着, 它们一只连着一只直到井里. 它兴奋地大叫:“别蠢了!月亮还好好地挂在天上呢!”
[root@iz2ze76ybn73dvwmdij06zz ~]# grep -i my monkey “Oh!My god!The moon has fallen into the well!” “噢!我的天!月亮掉到井里头啦!”
查找符合条件的行并输出行号
[root@iz2ze76ybn73dvwmdij06zz ~]# grep -n monkey monkey 1:One day,a little monkey is playing by the well.一天,有只小猴子在井边玩儿. 4:An older monkeys runs over,takes a look,and says,一只大猴子跑来一看,说, 6:And olderly monkey comes over.老猴子也跑过来. 9:A group of monkeys run over to the well .一群猴子跑到井边来, 13:Then,the oldest monkey hangs on the tree up side down ,with his feet on the branch . 15:And he pulls the next monkey’s feet with his hands.拉住大猴子的脚, 16:All the other monkeys follow his suit,其他的猴子一个个跟着, 19:Just before they reach the moon,the oldest monkey raises his head and happens to see the moon in the sky,正好他们摸到月亮的时候,老猴子抬头发现月亮挂在天上呢
查找开头是J的行
[root@iz2ze76ybn73dvwmdij06zz ~]# grep '^J' monkey Just before they reach the moon,the oldest monkey raises his head and happens to see the moon in the sky,正好他们摸到月亮的时候,老猴子抬头发现月亮挂在天上呢
查找结尾是呢的行
[root@iz2ze76ybn73dvwmdij06zz ~]# grep "呢$" monkey Just before they reach the moon,the oldest monkey raises his head and happens to see the moon in the sky,正好他们摸到月亮的时候,老猴子抬头发现月亮挂在天上呢
d 删除选择的行 s 查找 y 替换 i 当前行前面插入一行 a 当前行后面插入一行 p 打印行 q 退出
替换符:
数字 :替换第几处 g : 全局替换 \1: 子串匹配标记,前面搜索可以用元字符集\(..\) &: 保留搜索刀的字符用来替换其他字符
操作:
替换
查看文件:
➜ happy cat word Twinkle, twinkle, little star How I wonder what you are Up above the world so high Like a diamond in the sky When the blazing sun is gone
替换:
➜ happy sed 's/little/big/' word Twinkle, twinkle, big star How I wonder what you are Up above the world so high Like a diamond in the sky When the blazing sun is gone
查看文本:
➜ happy cat word1 Oh if there's one thing to be taught it's dreams are made to be caught and friends can never be bought Doesn't matter how long it's been I know you'll always jump in 'Cause we don't know how to quit
全局替换:
➜ happy sed 's/to/can/g' word1 Oh if there's one thing can be taught it's dreams are made can be caught and friends can never be bought Doesn't matter how long it's been I know you'll always jump in 'Cause we don't know how can quit
按行替换(替换2到最后一行)
➜ happy sed '2,$s/to/can/' word1 Oh if there's one thing to be taught it's dreams are made can be caught and friends can never be bought Doesn't matter how long it's been I know you'll always jump in 'Cause we don't know how can quit
删除:
查看文本:
➜ happy cat word Twinkle, twinkle, little star How I wonder what you are Up above the world so high Like a diamond in the sky When the blazing sun is gone
删除:
➜ happy sed '2d' word Twinkle, twinkle, little star Up above the world so high Like a diamond in the sky When the blazing sun is gone
显示行号:
➜ happy sed '=;2d' word 1 Twinkle, twinkle, little star 2 3 Up above the world so high 4 Like a diamond in the sky 5 When the blazing sun is gone
删除第2行到第四行:
➜ happy sed '=;2,4d' word 1 Twinkle, twinkle, little star 2 3 4 5 When the blazing sun is gone
添加行:
向前插入:
➜ happy echo"hello" | sed 'i\kitty' kitty hello
向后插入:
➜ happy echo"kitty" | sed 'i\hello' hello kitty
修改行:
替换第二行为hello kitty
➜ happy sed '2c\hello kitty' word Twinkle, twinkle, little star hello kitty Up above the world so high Like a diamond in the sky When the blazing sun is gone
替换第二行到最后一行为hello kitty
➜ happy sed '2,$c\hello kitty' word Twinkle, twinkle, little star hello kitty
写入行
把带star的行写入c文件中,c提前创建
➜ happy sed -n '/star/w c' word ➜ happy cat c Twinkle, twinkle, little star
退出
打印3行后,退出sed
➜ happy sed '3q' word Twinkle, twinkle, little star How I wonder what you are Up above the world so high
awk
名字由来
创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。
[root@iz2ze76ybn73dvwmdij06zz ~]# awk 'BEGIN {print "Name Math Chinese English History Sport grade\n----------------------------------------------"} {print $0}' students_store
Name Math Chinese English History Sport grade ---------------------------------------------------------- Xiaoka 60 80 40 90 77 class-1 Yizhihua 70 66 50 80 90 class-1 kerwin 80 90 60 70 60 class-2 Fengzheng 90 78 62 40 62 class-2
仅打印姓名、数学成绩、班级信息,再加一个文尾(再接再厉):
[root@iz2ze76ybn73dvwmdij06zz ~]# awk 'BEGIN {print "Name Math grade\n---------------------"} {print $1 2 "\t" $7} END {print "continue to exert oneself"}' students_store
Name Math grade --------------------- Xiaoka 60 class-1 Yizhihua 70 class-1 kerwin 80 class-2 Fengzheng 90 class-2 continue to exert oneself