SHELL基础工具
2023-02-26 12:28:13 时间
[toc]
一、文本处理工具
1.grep行过滤工具
语法:
`grep ‘关键字’ filename
options:
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
-i #不区分大小写 -v #取反 -w #按单词搜索 -o #打印匹配关键字 -c #统计匹配到的行数 -n #显示原行号 -r #层级遍历目录查找 -A #显示匹配行及后面多少行 -B #显示匹配行及前面多少行 -C #显示匹配行前后多少行 -l #只列出匹配的文件名 -L #列出不匹配的文件名 -e #使用正则匹配 -E #使用扩展正则匹配 ^ #以关键字开头 $ #以关键字结尾 ^$ #匹配空行 --color=auto #关键字加上颜色
别名设置颜色显示
#临时设置 alias grep='grep --color=auto' #永久设置 #全局: vim /etc/bashrc alias grep='grep --color=auto' #source /etc/bashrc #局部: vim ~/.bashrc alias grep='grep --color=auto' #source ~/.bashrc
2.cut列截取工具
语法:cut <option> filename
options:
-c #以字符为单位进行分割 -d #自定义分隔符,默认为制表符t -f #与-d一起使用,指定截取哪个区域
例子:
cut -d: -f1 1.txt #以冒号为分隔符,截取第一列内容 cut -d: -f1,3,5 1.txt #以冒号为分隔符,截取1,3,5列内容 cut -c1-5 1.txt #截取文件中每行的1-5个字符 cut -c5- 1.txt #截取第五个字符后面所有字符
例题:
用cut或grep过滤出当前系统的运行级别”runlevel”
runlevel | cut -d '' -f2 runlevel | cut -d ' ' -f2 grep -v '^#' /etc/inittab |cut -d: -f2 grep "initdefault:$" /etc/inittab|cut -c4
3.sort工具
sort工具用于排列,它将文件的每一行作为一个单位,从首字符向后,依次按ascii码进行比较,最后按升序输出
options:
-u #去除重复行 -r #降序排列 -o #将排列结果输出到文件,类似重定向> -n #以数字排序,默认是按字符排序 -t #分隔符 -k #第N列 -b #忽略前导空格 -R #随机排序,每次运行的结果均不同
例子:
#按照用户的uid进行升序排列 sort -n -t: -k3 /etc/passwd #按照用户的uid进行降序排列 sort -rn -t: -k3 /etc/passwd #按照用户的uid进行降序排列并将结果输出到1.txt中 sort -rn -t: -k3 /etc/passwd -o 1.txt
4.uniq工具-去除连续的重复行
options:
-i #忽略大小写 -c #统计重复行此时 -d #只显示重复行
例子:
uniq -c 1.txt 2 hello world 1 HELLO world 1 hello WORLD uniq -ci 1.txt 4 hello world
5.tee工具–从标准输入读取并写入标准输出和文件
options:
-a #双向追加重定向
例子:
[[email protected] ~]$ echo hello world|tee 1.txt hello world [[email protected] ~]$ cat 1.txt hello world [[email protected] ~]$ echo hello world|tee -a 1.txt hello world [[email protected] ~]$ cat 1.txt hello world hello world
6.diff工具-逐行比较文件的不同
#diff描述两个文件不同的方式是告诉我们“怎样改变第一个文件之后,与第二个文件匹配”
语法:diff <option> file1 file2
options:
-b #不检查空格 -B #不检查空白行 -i #不检查大小写 -w #忽略所有的空格 --normal #正常格式显示 -c #上下文格式显示 -u #合并格式显示
例子:
#比较两个普通文件的异同
#文件准备 [[email protected] ~]$ cat file1 hello world 123456 123123 aaa [[email protected] ~]$ cat file2 HELLO WOLRD AAA 123123 12345 bbb
(1)正常显示
diff file1 file2 #diff(目的) file1 {如何改变才能和} file2 {匹配}
(2)上下文格式显示
#前两行主要列出需要比较的文件名和文件的时间戳
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- PS2022软件安装包+安装教程(mac+windows全版本都有,包括最新的2023)
- PS CC 2019软件安装教程(mac+windows全版本都有,包括最新的2023)
- 最新ps2021软件绿色版安装教程 附软件安装包(mac+windows全版本都有)
- 撤销git commit
- godot使用简介
- 嵌入式:Load/Store之单寄存器的存取指令
- 开源项目 Spartacus 的 git 提交流程规范
- 开源项目 Spartacus 的 git 分支使用规范
- C++中的引用处理
- 在CentOS8中安装gitlab
- 9个嵌入式硬件转软件小技巧
- VS code搭建 C 和 C++ 环境的完整图文教程!
- 一文读懂Go函数调用
- 举例说明嵌入式框架该如何分层
- 嵌入式开发如何统计运行占据内存
- C++内存模型,我们常说的堆栈究竟指什么?
- 原来C++变量在内存中不是紧密排列的,聊聊内存对齐
- PowerPoint LTSC 2021 for Mac(ppt演示工具)
- Golang比php开发好在哪?
- C++——拷贝构造和 运算符重载