作业-第03周--课堂-Day10-linux文件过滤及内容编辑处理

Day10 课堂笔记

1. 老男孩思想

老男孩思想:如何提升自学能力?
1、养成主动看书的习惯。
2、养成预习的习惯。
这就是工作中领导分配任务,让你去搞定的模拟。
3、课堂上积极思考,对老师提问的问题主动回答,对于不会的要主动发问。
4、对老师留的课后拓展的作业要能够完成。
5、对学习的内容要深度编码总结(思维导图总结,画图总结)等
抓重点:女浴室着火
知识==>短时记忆===>编码加工===>长时记忆(存储大脑里)===>提取
6、课后遇到不会的不要轻易问别人,要学会自己解决问题。
笔记/书===查帮助文档==搜索引擎==>加一些Linux交流群===身边人同学、项目经理、老师
7、提升阅读外语的能力。
通过计算机技术知识反向学习外语

  • a.学过的单词记录单词对应的意思的英文
    fhs目录层次标准里去查或man cp看名字
  • b.总结100个报错的翻译

2. tr:替换或删除字符

~~tr命令从标准输入中替换、缩减或者删除字符、并将结果写到标准输出,Linux里严格区分大小写。所有字符都尽量加双引号。

tr命令的常用参数说明:

  • ~~-d 删除字符
  • ~~-s 保留连续字符的第一个字符,删除其他字符
  • ~~-c 使用第一个字符串(set1)的补集,取反

使用范例
实践文本如下:

[root@oldboyedu  ~]# cat oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448

not 4900000448
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu  ~]#

2.1 将文件中出现的“abc”替换为“xyz”。

[root@oldboyedu  ~]# tr 'abc' 'xyz' < oldboy.txt     
                            #tr命令接文件比较特殊,需要输入重定向符号“<”             
I xm oldyoy texzher!
I texzh linux.

I like yxdminton yxll,yillixrd yxll xnd zhinese zhess!
my ylog is http://oldyoy.ylog.51zto.zom
our site is http://www.etixntixn.org
my qq num is 49000448

not 4900000448
my god ,i xm not oldyey,yut OLDBOY!
[root@oldboyedu  ~]#

说明:凡是在文本中出现的“a”转换为“x”,“b”换换为“y”,“c”转换为“z”,而不是仅仅将字符串“abc”替换为字符串“xyz”

2.2 使用tr命令“统一”字母大小写。

[root@oldboyedu  ~]# tr '[a-z]' '[A-Z]' <oldboy.txt
I AM OLDBOY TEACHER!
I TEACH LINUX.

I LIKE BADMINTON BALL,BILLIARD BALL AND CHINESE CHESS!
MY BLOG IS HTTP://OLDBOY.BLOG.51CTO.COM
OUR SITE IS HTTP://WWW.ETIANTIAN.ORG
MY QQ NUM IS 49000448

NOT 4900000448
MY GOD ,I AM NOT OLDBEY,BUT OLDBOY!
[root@oldboyedu  ~]#

2.3 将数字0-9替换为a-j。(也是一一对应)

[root@oldboyedu  ~]# tr '[0-9]' '[a-j]' <oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.fbcto.com
our site is http://www.etiantian.org
my qq num is ejaaaeei

not ejaaaaaeei
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu  ~]#

2.4 删除文件中出现oldboy中的每个字符。

[root@oldboyedu  ~]# tr -d 'oldboy' <oldboy.txt
I am  teacher!
I teach inux.

I ike amintn a,iiar a an chinese chess!
m g is http://.g.51ct.cm
ur site is http://www.etiantian.rg
m qq num is 49000448

nt 4900000448
m g ,i am nt e,ut OLDBOY!
[root@oldboyedu  ~]#

说明:凡是在文件中出现的“o”,“l”,“d”,“b”,“y”字符都会被删除,而不是仅仅删除“oldboy”字符串。

3. grep:文本过滤工具

~~grep命令是Linux系统中最重要的命令之一,其功能是从文本文件或管道数据流中筛选匹配的行及数据,如果配合正则表达式技术一起使用,则功能更加强大。

grep命令的常用参数说明:

  • ~~-v 显示不匹配的行(取反)
  • ~~-n显示匹配行及行号
  • ~~-i 不区分大小写(只适合用于单字符),默认是区分大小写的
  • ~~-c 只统计匹配的行数,注意不是匹配的次数
  • ~~-E 使用扩展的egrep
  • ~~--color=auto 给grep过滤的匹配字符串加颜色
  • ~~-w 只匹配过滤的单词
  • ~~-o 只输出匹配的内容

使用范例:
3.1 ''–v''参数实践

[root@oldboyedu  ~]#cat 1.txt
1
2
3
[root@oldboyedu  ~]# grep -v "2" 1.txt
1
3
[root@oldboyedu  ~]#

3.2 ''-n''参数实践

[root@oldboyedu  ~]# cat 2.txt
aa
aa
bb
cc
dd
ee
ff
bb
cc
dd
ee
ff
[root@oldboyedu  ~]# grep -n "cc" 2.txt
4:cc
9:cc
[root@oldboyedu  ~]#

3.3 ''-i''参数实践

[root@oldboyedu  ~]# cat 3.txt
aa
bb
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]# grep "c" 3.txt
cc
cA
[root@oldboyedu  ~]# grep -i "c" 3.txt
cc
cA
bC
[root@oldboyedu  ~]#

3.4 ''-E''和''--color''的参数实践

[root@oldboyedu  ~]# cat 3.txt
aa
bb
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]# grep -Ei "a|c" 3.txt
aa
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]# grep -Ei --color=auto "a|c" 3.txt
aa
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]#

3.5 ''-c''参数实战

[root@oldboyedu  ~]# cat 3.txt
aa
bb
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]# grep -c "c" 3.txt
2
[root@oldboyedu  ~]#

3.6 ''-o''参数实战

[root@oldboyedu  ~]# cat 3.txt
aa
bb
cc
Ab
Ba
cA
bC
[root@oldboyedu  ~]# grep -o "c" 3.txt
c
c
c
[root@oldboyedu  ~]#

考题:在/data目录下创建oldboy.txt,并增加"I am studying linux."一行内容。
该题有多种解题方法,下面来一一分析讲解。

  • 方法1:
[root@oldgirl ~]# ls -ld /data
ls: cannot access /data: No such file or directory
[root@oldgirl ~]# mkdir /data -p
[root@oldgirl ~]# ls -ld /data
drwxr-xr-x. 2 root root 6 Mar 13 10:20 /data
[root@oldgirl ~]# vim /data/oldboy.txt
I am studying linux.
[root@oldgirl ~]# cat /data/oldboy.txt
I am studying linux.
  • 方法2:
[root@oldgirl ~]# mkdir -p /data
[root@oldgirl ~]# echo "I am studying linux." >/data/oldboy.txt 
[root@oldgirl ~]# cat /data/oldboy.txt 
I am studying linux.
  • 方法3:
[root@oldboyedu  /data]# cat >/data/oldboy.txt <<EOF
> I am studing linux
> I am studing linux
> EOF
[root@oldboyedu  /data]# cat /data/oldboy.txt 
I am studing linux
I am studing linux
#<==EOF成对出现,后面这个顶格。

老男孩思想:操作后检查的习惯,才能提升正确率。

4. 重定向符号的核心知识

  • ">"或"1>":标准输出重定向,箭头方向就是数据流向
    把左边的数据流向到右边,会清空右边之前的数据。

清空前备份:

[root@oldgirl ~]# cp test.txt{,.ori}
[root@oldgirl ~]# cp test.txt test.txt.ori

清空文件:

[root@oldgirl ~]# >test.txt
[root@oldgirl ~]# cat test.txt
  • ">>"或"1>>"追加输出重定向,内容追加到文件尾部。
[root@oldgirl ~]# echo "I am studying linux." >>/data/oldboy.txt 
[root@oldgirl ~]# cat /data/oldboy.txt 
I am studying linux.
I am studying linux.
I am studying linux.
  • "<"或"0<"标准输入重定向,箭头方向就是数据流向
[root@oldboyedu ~]# tr "am" "01" </data/oldboy.txt
I 01 studying linux.
I 01 studying linux.
I 01 studying linux.
I 01 studying linux.
  • "<<"或"0<<"追加输入重定向,箭头方向就是数据流向
    用法
cat<<EOF
I am oldboy
EOF
  • "2>"标准错误输出重定向,箭头方向就是数据流向,把左边的【报错】输出到右边(覆盖)
  • "2>>" 标准错误追加输出重定向,箭头方向就是数据流向,把左边的【报错】输出到右边(追加)。

固定定义:

  • 数字1 标准输出(standard output)
  • 数字0 标准输入(standard input)
  • 数字2 错误输出(error output)
[root@oldboyedu ~]# echo "I am studying linux." 1>/data/oldboy.txt 
[root@oldboyedu ~]# cat /data/oldboy.txt
I am studying linux.
[root@oldboyedu ~]# echo "I am studying linux.." 1>>/data/oldboy.txt 
[root@oldboyedu ~]# cat /data/oldboy.txt
I am studying linux.
I am studying linux..

[root@oldboyedu ~]# tr "am" "01" 0</data/oldboy.txt
I 01 studying linux.
I 01 studying linux.
名称 文件描述简介
标准输入(stdin) 代码为0,配合<或<<使用,数据流从右向左
标准输出(stdout) 代码为1,配合>或>>使用,数据流从左向右
标准错误输出(stderr) 代码为2,配合>或>>使用,数据流从左向右
重定向符号,数据流是箭头方向
标准输入重定向 0<或<,清空已有内容,数据一般从文件流向处理的命令
追加输入重定向 0<<或<<,追加内容到底部,数据一般从文件流向处理的命令
标准输出重定向 1>或>,正常输出重定向到文件,会清空已有的内容
标准追加输出重定向 1>>或>>,将内容追加重定向到底部,不会清空已有的内容
标准错误输出重定向 2>,将标准错误内容重定向到文件,如果文件存在内容则清空
标准错误输出追加重定向 2>>,将标准错误内容追加到文件底部,不会清空已有的内容

此外还有一个特殊重定向用法:将标准错误重定向到标准输出,即标准错误和标准输出一样重定向到文件中,这个功能有3种实现命令的方法。

方法1:echo "I am oldboy" 1>>oldboy.txt 2>>oldboy.txt
方法2:echo "I am oldboy" &>>oldboy.txt 
方法3:echo "I am oldboy" >>oldboy.txt  2>&1

5. Linux文件属性概述

~~在Linux系统中文件或目录的属性主要包括:索引节点、文件类型、权限属性、链接数、所归属的用户和用户组、最近修改时间等内容。

文件属性示意图

老男孩思想:学习的时候重视过程,工作的时候重视结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容