常用Linux命令-文本处理命令

Linux下常用文本处理命令

grep-文本搜索

常用选项

  -i :忽略大小写(ignore case)。
  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
  -n :显示行号
  -c :显示总共有多少行被匹配到了
  –color :将匹配到的内容以颜色高亮显示。
  -A n:显示匹配到的字符串所在的行及其后n行,after
  -B n:显示匹配到的字符串所在的行及其前n行,before
  -C n:显示匹配到的字符串所在的行及其前后各n行,context
  -E :开启扩展(Extend)的正则表达式。

实例

1
2
3
4
# 将/etc/passwd中有出现root的行打印出来,并把root高亮显示
grep root /etc/passwd --color
# 将/etc/passwd中有出现root的行及前后两行打印出来,并把root高亮显示
grep root /etc/passwd --color -C 2

less-分页显示文本

介绍

less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。

常用功能

  /字符串:向下搜索”字符串”的功能
  ?字符串:向上搜索”字符串”的功能
  n:重复前一个搜索(与 / 或 ? 有关)
  N:反向重复前一个搜索(与 / 或 ? 有关)
  Q 退出less 命令
  空格键 滚动一页
  回车键 滚动一行

more-分页显示文本

介绍

与less命令参数类似,功能没less强大。

cat-连接文件并打印

实例

1
2
3
4
5
6
7
8
# 查看文件内容
cat a.txt
# 查找文件内容
cat a.txt | grep cc
#同时显示文件ml和m2的内容
cat m1 m2
#将文件ml和m2合并后放入文件file中
cat m1 m2 > file

head-查看文件开头内容

实例

1
2
#查看文件前5行内容
head -n 5 log.txt

tail-查看文件尾部内容

###实例

1
2
3
4
#显示文件最新追加的内容,查看实时日志
tail -f filename
#显示文件最后20行
tail -n 20 filename

vim-编辑器

vim的几种模式

  正常模式:可以使用快捷键命令,或按:输入命令行。
  插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
  可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
  替换模式:正常模式下,按R进入。

常用快捷键  

  : wq (输入m「wq」,存盘并退出vi)
  : q! (输入q!, 不存盘强制退出vi)
  ESC:从插入模式切换为命令行模式
  h或退格: 左移一个字符
  l或空格: 右移一个字符
  j: 下移一行
  k: 上移一行
  yy or Y: 复制整行文本。
  a: 在光标后插入
  A: 在当前行最后插入
  o: 在下面新建一行插入
  O: 在上面新建一行插入

sed-文本流编辑

介绍

sed是一种流编辑器,主要用来自动编辑一个或多个文件。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

实例

1
2
# 打印2018-11-17 09:25:55到2018-11-17 09:25:55之间的日志
sed -n ‘/2018-11-17 09:25:55/,/2018-11-17 09:25:55/p’ logfile

find-文件搜索

常用选项

  -name:按文件名查找
  -type:按文件类型查找
  -size:按文件大小查找
  -a: 组合查找and
  -o: 组合查找or
  -not:组合查找not

实例

1
2
3
4
5
6
7
8
9
10
#列出当前目录及子目录下所有文件和文件夹
find .
#查找目录
find . -type d
#在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
#同上,但忽略大小写
find /home -iname "*.txt"
#当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . -name "*.txt" -o -name "*.pdf"

sort-文件排序

常用选项

  -f:忽略大小写,默认大小写字母不同
  -r:降序排序,默认为升序
  -u:去除重复的行
  -o:将输出写入文件

实例

1
2
#反向排序文件并输出到源文件
sort -r number.txt -o number.txt

uniq-删除文件重复行

实例

1
2
#排序并删除重复行
sort file.txt | uniq

wc-文件统计

常用选项

  -c:统计字节数。
  -l:统计行数。
  -m:统计字符数。这个标志不能与 -c 标志一起使用。
  -w:统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
  -L 打印最长行的长度。

实例

1
2
#统计文件中hello出现的行数
grep hello a | wc -l

diff-文件比较

常用选项

  -c :显示全部内文,并标出不同之处。
  -u:以合并的方式来显示文件内容的不同。

实例

1
2
3
4
# 比较两个文件
diff log1.log log2.log
# 比较两个文件
diff log1.log log2.log -u

echo-输出字符串

实例

1
2
3
4
#显示普通字符串
echo "It is a test"
#显示环境变量
echo $path

查询线上日志常用命令

1
2
3
4
5
6
7
8
# 将log.txt中有出现root的行及前后10行打印出来,并把root高亮显示
grep "root" log.txt --color -C 10
# 查看实时日志
tail -f log.txt
# 查看实时日志并只输出出现root的行
tail -f log.txt | grep "root"
# 查询指定时间段的日志
sed -n '/2018-12-17 16:17:20/,/2018-12-17 16:17:36/p' log.txt
# Linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×