文件过滤及内容编辑处理命令
cat:合并文件或查看文件内容(上下合并)
01、无参数:查看文件内容 cat file.txt
02、无参数:合并多个文件 cat file1.txt file2.txt >newfile.txt
03、无参数:追加内容到文件尾部 cat >>file.txt<<EOF
04、无参数:清空文件内容 cat /dev/null>file.txt
05、-n:从1开始对输出内容显示行号 cat -n file.txt
06、-b:忽略空白显示行号 cat -b file.txt
07、-A:等价于vET,将标示符显示出来 cat -A file.txt
08、ctrl+退格键:删除
tac:反向显示文件内容
01、无参数:逆序输出每行内容 tac file.txt
more:分布显示文件内容(了解)
01、无参数:一页一页显示文件内容 more /etc/services
02、+num:从行号num开始显示 more +88 /etc/services
less:分页显示文件内容(重点,more的增加版)
01、无参数:分页显示文件内容 less /etc/services
02、-N:显示每行的行号 less -N /etc/services
03、方向键上:向上滚动一行
04、方向键下:向下滚动一行
05、page up:向上滚动一页
06、page down:向下滚动一页
07、g:移动到第一行
08、G:移动到最后一行
09、?字符串:向上搜索“字符串”
10、/字符串:向下搜索“字符串”
11、n:向后查找下一个匹配的文本
12、N:向前查找下一个匹配的文本
head:显示文件内容头部
01、无参数:默认显示文件的前10行 head /etc/passwd
02、-n:指定显示的行数 head -n 5 /etc/passwd
tail:显示文件内容尾部
01、无参数:显示最后10行 tail /etc/passwd
02、-n:显示指定的行数 tail -n 5 /etc/passwd
03、-f:实时输出文件变化后追加的数据 tail -f /application/nginx/logs/access.log
tailf:跟踪日志文件(tailf几乎等同于tail -f,不同在于tailf不会去访问磁盘文件,不会更改文件的访问时间)
01、无参数:默认输出日志文件的最后10行 tailf /application/nginx/logs/access.log
02、-n:显示指定的行数 tailf -n 5 /application/nginx/logs/access.log
cut:从文本中提取一段文字并输出
01、-b:以字符为单位进行分割 cut -b 3-5,10 oldboy.txt
02、-n:取消分割多字节字符,与选项-b联用 cut -nb 2-10 oldboy.txt
03、-c:以字符为单位进行分割 cut -c 2-10 oldboy.txt
04、-d:自定义分隔符,默认以tab为分隔符 cut -d : /etc/passwd
05、-f:与选项-d联用,指定显示哪个区域 cut -d : -f 1 /etc/passwd
06、N:第N个字节、字符或字段
07、N-:从第N个字节、字符或字段开始直至行尾
08、N-M:从第N到第M(含More)个字节、字符或字段
09、-M:从第1到第M(含More)个字节、字符或字段
split:分割文件
01、-l:指定分割后文件的最大行数 split -l 10 inittab new_
paste:合并文件(左右合并)
01、无参数:默认合并文件 paste test1 test2
02、-d:指定分隔符,默认是tab paste -d: test1 test2
03、-s:每个文件占用一行 paste -s test1
04、-sd:使第一行=第二行(特殊用法,参数不可换顺序) paste -sd '=\n' test.txt
使第一行=第二行:xarge -n 2 <test.txt|sed 's# #=#g'
sort:文本排序
01、无参数:按ASCII码升序排列 sort oldboy.txt
02、-b:忽略开关的空格符 sort -b oldboy.txt
03、-u:去除重复行 sort -u oldboy.txt
04、-n:依照数值大小排序 sort -n oldboy.txt
05、-t:指定分隔符 sort -t "." oldboy.txt
06、-r:倒序排列
07、-k:指定区间排序 sort -t "." -k 1.10,1.11 -k 4,4n sort.txt
join:按两个文件的相同字段合并
01、无参数:将排序好的文件合并 sort a.txt>a.txtn sort b.txt>b.txtn join a.txtn b.txtn
02、-a:输出不匹配的行
03、-i:比较字段时忽略大小写
04、-1:以第1个文件的指定字段为基础进行合并
05、-2:以第2个文件的指定字段为基础进行合并
06、:
uniq:却除重复行
01、无参数:去除重复行 uniq oldboy.txt
02、-c:去除重复行并计算每行出现的次数 sort -n oldboy.txt|uniq -c
03、-d:只显示重复行
04、-u:只显示唯一行
wc:统计文件的行数、单词数或字节数
01、无参数:行数、单词数、字节数 wc /etc/inittab
02、-c:统计字节数 wc -c /etc/inittab
03、-w:统计单词数 wc -w /etc/inittab
04、-l:统计行数 wc -l /etc/inittab
05、-L:打印最长行的长度 wc -L /etc/inittab
06、-m:统计字符数 wc -m /etc/inittab
iconv:转换文件的编码格式
01、无参数:
02、-f:从编码A转换 iconv -f gb2312 -t utf-8 GB2312.txt
03、-t:转换成编码A
04、-l:显示系统支持的编码
05、-o:将输出输入到指定文件
dos2unix:将dos格式文件转换成UNIX格式
01、无参数:dos2unix oldboy.win.sh
diff:比较两个文件的不同
01、无参数:默认格式输出 diff test1 test2
02、-y:以并列的方式显示文件的异同之处 diff -y test1 test2
03、-W:在使用-y时,指定显示的宽度 diff -y -W 30 test1 test2
04、-c:使用上下文格式输出 diff -c test1 test2
05、-u:使用统一格式输出 diff -u test1 test2
vimdiff:可视化比较工具
01、无参数:调用vim打开文件,颜色区分 vimdiff a.txt b.txt
rev:反向输出文件的内容
01、无参数:反向输出文件的内容,到少要有一个空格 echo{1..10}}rev
tr:替换和删除字符
01、无参数:前面的字符替换成后面的字符,一一对应 tr 'abc' 'xyz' <oldboy.txt
02、-d:删除指定的每个字符 tr -d 'oldboy'
03、-s:保留连续字符的第一个字符,删除其他字符 echo 'ooollldddoyyy'|tr -s oldboy
04、-c:使用第一个字符串(setl)的补集,取反 tr -c '0-9' '*'<oldboy.txt
od:按不同进制显示文件
01、无参数:
02、-A:指定进制 o八进制(默认)d十进制 x十六进制 n不打印位移值
03、-t:指定数据格式 a命名字符 cASCII字符 d有符号的十进制 f浮点数 o八进制(默认) u无符号十进制 x十六进制
04、file /bin/ls od -Ax -tcx /bin/ls|less
tee:多重定向
01、无参数:标准输出的同时把内容写入到文件 ls|tee ls.txt
02、-a:向文件追加内容 ls|tee -a ls.txt
vi/vim:纯文本编辑器
普通模式
01、gg:文件首行
02、G:文件末行
03、0:光标移动到当前行开关
04、$:光标移动到当前行末尾
05、数字n:光标向下移动n行
06、/XXX:向下搜索XXX字符串
07、?XXX:向上搜索XXX字符串
08、n:向上重复前一个搜索动作
09、N:向下重复前一个搜索动作
10、%s#A#Bg:把A全部替换为B
11、yy:复制当前行
12、nyy:从含光标位置向下复制n行
13、p:粘贴到光标的下一行
14、P:粘贴到光标的上一行
15、dd:删除光标所在行
16、ndd:从含光标位置向下删除n行
17、u:恢复前一个执行操作,撤销
18、.:重复前一个执行的动作
19、x:向后删除字符
20、X:向前删除字符
21、d1G:删除当前行到第一行
22、dG:删除当前行到最后一行
23、d0:删除当前光标文本到行首
24、d$:删除当前光标文本到行尾
编辑模式
01、i:当前光标所在处插入文字
02、a:光标所在的下一字符处插入文字
03、I:当前行行首处插入文字
04、A:当前行行尾处插入文字
05、O:所在行的上一行插入新行
06、o:所在行的下一行插入新行
07、esc:退出编辑模式
块模式
01、Ctrl+v:进入可视化模式
02、n1,n2s/#//gc:取消多行注释
03、del:一次性删除所选内容
04、r:一次性替换所选内容
命令模式
01、wq:保存并退出
02、wq!:强制保存并退出
03、q!:强制退出,不保存
04、n1,n2 w filename:将n1行到n2行的内容存在成filename这个文件
05、n1,n2 co n3:将n1行到n2行的内容复制到n3的位置
06、n1,n2 m n3:将n1行到n2行的内容剪切到n3的位置
07、!command:暂时离开vi到命令行模式下执行command的显示结果,例如 !ls/etc
08、set nu:显示行号
09、set nonu:取消行号
10、vs filename:垂直分屏显示当前文件和filename文件内容
11、sp filename:水平分屏显示当前文件和filename文件内容