LINUX 文本处理命令学习总结(补充1)

yG复制从当前行到最后一行,dG删除从当前行到最后一行

 vim命令时进入文件进行修改的命令

补充文件处理命令的一些内容:

一、grep 命令:grep +关键词 +文件名(相对路径)如图1/文件目录(绝对路径)如图2

图1

图2

从另一个文件中的关键字对一个文件进行搜索(如下图是以5.txt为基准)

 从多个文件内容中查找关键词

除了上面图1所示外,还有下图 grep +关键词+文件名+空格+文件名+空格+文件名...

 找出以Y开头的行

不以Y开头的

 有L或Y的

在文件名有5的文件内容中找出没有"test"的内容,和没有"Y"的内容

 

 将这两个命令合并还可以直接写成(还是有差异的)

下图是Y/t/e/s/t都去匹配,上面只匹配没有"test"和"Y"

下图是在/test1中找出有含h内容的文件

 在当前目录下找出txt文件内容中有连续三个小写字母,三个大写字母

如下图

 递归搜寻,如果你只想搜目录用 -l,搜内容就不要用这个,这个加上之后只会搜到文件

效果如下图

 用grep命令和ls搜文件名中关键词

touch 123.txt
touch abc123.txt
touch abc_123.txt
touch AbC_123.txt
touch a123bc.txt
touch 2881

1.使用通配符匹配所有txt文件ls *.txt

2.匹配所有包含数字的文件:ls *[0-9]*

3.匹配所有包含大写字母的文件 :

ls | grep -P "[A-Z]"或者ls *[[:upper:]]*
4.匹配所有.txt前以小写字母结尾的文件

ls |grep "[a-z].txt"或者ls *[[:lower:]].txt
5.匹配所有.txt前数字结尾的文件:

ls *[[:digit:]].txt

6.匹配中间有两个小写字母的文件
这个正则表达式表示文件名以零个或多个非小写字母字符开头,后跟一个小写字母,然后是零个或多个非小写字母字符,再跟一个小写字母,最后以零个或多个非小写字母字符结尾。这样就可以确保中间有两个小写字母。
ls | grep -P "^[^a-z]*[a-z][^a-z]*[a-z][^a-z]*$"(只有两个字母,不包括.txt文件) ls | grep -P "^.[^a-z]*[a-z].*[a-z][^a-z]*.$" |grep -v txt(中间只要有两个字母,不包括.txt文件)
ls | grep '[^a-z]*[a-z][^a-z]*[a-z][^a-z].*'.txt(中间有两个小写字母,只在.txt文件寻找)
正常写法:ls *[[:lower:]]*[[:lower:]]*.txt 

用ls 或 grep 进行匹配名字里有两个及更多小写字母且不是.txt文件 : ls | grep -P '^((?!.*\.txt$).*[a-z].*){2}$'
7.匹配中间有3位数字的文件:

 ls ?*[0-9][0-9][0-9]*.txt(在txt里找)或者 ls|grep -P"[0-9]\{3\}"
8.匹配中间有特殊字符的文件:

ls | grep -E '^[^a-zA-Z0-9]' | grep -v '.txt' | grep -m 1 ''-m 例如4数字选项用于显示前四行匹配结果。或者ls *[[:punct:]]*.txt
9.匹配中间有一个大写字母的文件:

ls | grep -P "^[^A-Z].*[A-Z][^A-Z].*$"(不在txt里寻找,位数至少为3位,其中有一位大写字母)
ls ?*[[:upper:]]* (只有文件名中间有,不管前面和后面的是啥)
10.匹配所有不包含字母的文件:

ls | grep -P "^[^a-zA-Z]"  

或者 ls |grep -v [[:alpha:]]

或者ls |grep "^[^a-zA-Z]*$"(匹配只包含非字母字符的文件或文件夹)

二、cut命令

cut命令 一般要加参数 -d -f -c这三个参数

 -d+用什么隔开的符号 -f 加第几行到第几行的数字(具体操作如上面三个图)

三、sort命令

 sort -t":"-k 3,3 /etc/passwd

sort -u去重(不管重复行连续还是不连续)

只用第三个字段排序

 加-n后效果如下:

 区别在于第三个字段,如果没加-n的话,就会把1....排到第一个识别

加了-n就会识别大小,1....就在最后了

 指定用第三个字段的第一个字符排序

将两个文件合并后覆盖给另一个文件,并排序  效果如下

四、uniq命令

单独使用uniq+文件名 效果如下: (如果重复行不在连续,需要先排序用sort命令)

 不改变文件本身内容

-s +数字 表示忽略第几个字段的比较

-d  表示显示重复的行

-c 表示显示重复的次数

-i 表示忽略大小写

-u 表示显示不重复的行

 五、wc命令

wc +文件名 效果如下

 第一个显示的是8行

第二个显示的是8个单词

第三个显示的是字节数

 上图中用到了

-c 显示字节数()一个汉字占了3字节,一个英文字母占1字节

-m 显示字符数() 一个汉字占了1字符,一个英文字母占1字符

-l 显示行数

-w 显示单词数(用空格和特殊符号隔开的才算两个单词,上图是换行算成了单词)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值