Linux(3)管道和文本处理|vim编辑器高级特性

IO通道
stdin:standard input
stdout:standard output
stderr:standard error
一.输出重定向(>)
[root@node11 ~]# ls -l > /root/filelist.txt



二.输入重定向(<)
[root@node11 ~]# wc -l < filelist.txt
14

三.管道符( | )(重点)

command1 |command2
将command1的输出结果作为command2的输入
grep 过滤 -i不区分大小写

command1 |command2 |command3 |。。。。。支持多重管道
[root@node11 ~]# ps axo %cpu,%mem,pid,comm --sort=-%mem |head -n 6| > /root/a.txt
但如果最后使用重定向符号以后后面不可以在跟管道
如果需要保存中间文件需要使用tee(输出多次结果),既可以保存文件,也可以继续接管道
[root@node11 ~]# ps axo %cpu,%mem,pid,comm --sort=-%mem |head -n 6 |tee cpu.txt|head -n 6

四.多次输入(输入追加)<<END END
将用户多次输入的结果一次输出

五.vi和vim编辑器

vim编辑器的三种模式





命令模式:
:set nu 显示行号
:set nonu取消行号
:100光标跳到100行
30G光标跳到第30行
G光标跳到最后一行 g光标跳到第一行
dd 删除当前行或者剪切当前行
yy复制
p粘贴
按u撤销
查找并替换
/yes 搜索yes
:set ic忽视大小写
:set noic不忽视
:%s/no/yes/g 把no换成yes全局替换 没有/g则只换第一个
插入模式:i 进入插入模式
小 o 在当前行的下一行插入空行,进入插入模式
大O在当前行的上一行插入空行进入插入模式

按R恢复文件

六.文本提取工具
文本内容:cat,more和less

文本摘要:head和tail

tail方便看日志 因为日志都是最后是最新的,所以看最后就行了
按关键字提取:grep(文本三剑客之一)
tail -f /var/log/messages |grep -E'(err|warn)'
(过滤出文件日志中错误和警告)
tail -f /var/log/messages |grep -A3 -B3 -E'(err|warn)'(重点)
(-A3 -B3 前三行和后三号都显示出来)
tail -f /var/log/* 查找下面的所有文件监控文件追加的内容,以此来找到日志文件


grep选项(以行为单位)
-i 不区分大小写 -i, --ignore-case
-o 只是显示匹配的内容 only-match
-n 显示行号 line-number
-v invert-match 反向选择
grep -v ^#就是输出所有的行首非注释行的
grep -v ^$ 就是去掉了空行
-A after 在什么之后
-B before 在什么以前
-C center(中心) context上下文
-r 递归查找
[root@node11 ~]# grep -rinw 60000 /etc/
-rinw r递归 i忽略大小写 n显示行号 w 匹配单词(没有w会匹配含这个的所有 比如6000000000)
/etc/login.defs:34:UID_MAX 60000
/etc/login.defs:43:GID_MAX 60000
提取列或者字段:cut以列为单位

awk (文本三剑客之一)
awk '{print $1}'里面数字是多少就是第几个字段,默认不算空格或者说tab(以列为单位)
使用 -F参数可以指定字段分隔符。例如,处理以冒号分隔的文件:
awk -F ':' '{print $1}' demo.txt
输出文件的第一个字段。
awk '{print $3}'
输出为 a,因为 $3 表示第三个字段。
[root@node11 ~]# df -h |grep -w /
/dev/sda2 30G 3.9G 27G 13% /
[root@node11 ~]# df -h |grep -w / |awk '{print $1}'
/dev/sda2
[root@node11 ~]# df -h |grep -w / |awk '{print $5}'
13%
[root@node11 ~]# df -h |grep -w / |awk '{print $NF}'
/
[root@node11 ~]# df -h |grep -w / |awk '{print $(NF-1)}'
13%
bc开启计算器
[root@node11 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2
3
scale=2
4/2
2.00
七.文本分析工具
文本统计:wc
[root@node11 ~]# cat cpu.txt |wc -l (l统计行数)
11
[root@node11 ~]# cat cpu.txt |wc -w (w统计字符数)
69
[root@node11 ~]# cat cpu.txt |wc -c (c统计单词数)
527
文本排序:sort
[root@node11 ~]# cat cpu.txt |sort 正向排序从小到大
[root@node11 ~]# cat cpu.txt |sort -r 反向排序从大到小
|sort -rn (加n按数字大小排序)
sort -u 去除重复行


文本比较:diff 、vimdiff

八.文本操作工具
文本转换:tr

文本编辑:sed(文本三剑客之一)
sed -i 会真的修改文件但不备份
sed -i.bak 会修改源文件但备份




AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)