Linux常用的文本处理命令

1. 总体介绍 Linux常用的文本处理命令

  • more/less: 逐屏显示文件
  • catod: 一次性列出文件内容
  • headtail: 显示文件的头部或者尾部
  • tee: 三通
  • wc: 字数统计
  • sort: 对文件内容进行排序
  • tr: 翻译字符
  • uniq: 筛选文件中的重复行

2. more/less: 逐屏显示文件

more/less常用快捷键,推荐使用less代替more命令。

  • : 空格键,翻页
  • : 回车键,向下翻一行
  • q: 退出
  • jk: 向上或者向下翻一行
  • /: 查询关键字

3. catod: 一次性列出文件内容

cat: 命令来源: concatenate:串接,文本格式打印。
常用参数:
-n: 打印文件的时候,带上行号。

od: 命令来源: octal dump:逐字节打印,可以用八进制/十六进制打印。
常用参数:
-c: 按照字符打印,遇到不可打印字符,打印编码
-t c: 按照字符打印,如果字符不可打印,则打印一个八进制的ASCII码。
-t x1: 以一个字节为单位,每个字节都按照十六进制打印
-t o1: 以一个字节为单位,每个字节都按照八进制打印
-t d1: 以一个字节为单位,每个字节都按照十进制打印(但是超过127以后,会显示负数)
-t u1: 以一个字节为单位,每个字节都按照u(无符号整数)打印

下列方式可以以16进制显示一个字符串的编码。

echo abcdABCD | od -t x1

4. headtail: 显示文件的头部或者尾部

headtail: 不带参数,默认显示文件的头10行或者尾10行。
常用参数:
-n: 指定显示的行数。

tail -f: 可以持续监视一个文件,只要文件有变化,立马更新。(-f:是forever的意思。)

5. tee: 三通

tee:将标准输入stdin得到的数据,抄送到标准输出stdout显示,同时存入磁盘文件中。

举例:

# 将./myap的输出打印终端中,同时将输出保存到【myap.log】文件中。
./myap | tee myap.log

6. wc: 字数统计

wc:列出文件一共有多少行,有多少个单词,多少字符。

常用参数:
-l: 只列出行数。

# 显示系统有多少个进程
ps -ef | wc -l
# 显示当前有多少个用户登陆
who | wc -l

7. sort: 对文件内容进行排序

常用参数:
-n: [number]对于数字按照算数值大小排序,而不是按照字符串比较规则。

比如:123与67:

  • 如果按照字符串排序的话,67比123大;
  • 如果按照数字值排序的话,123比67大

8. tr: 翻译字符

tr string1 string2: 将标准输入拷贝到标准输出;如果标准输入中出现string1中包含的字符,那么替换为string2中对应的字符,然后再拷贝到标准输出。

echo abcdABCD | tr aBc AbC
# 输出结果如下:
AbCdAbCD

[ ]指定一个集合

# 将小写字母转换为大写字母
echo abcdABCD | tr '[a-z]'  '[A-Z]'
# 输出结果如下:
ABCDABCD

\加上三个八进制数字(类似C语言)表示一个字符

# 将%改为换行符,注意不要漏掉必须的单引号
cat file1 | tr % '\012'

8. uniq: 筛选文件中的重复行

uniq: 这个命令后面只允许出现一个文件。

常用参数:
-u: [uniq]只保留没有重复的行
-d: [duplicated]只保留有重复的行(但是只打印一次)
: 如果没有选项,打印没有重复的行和有重复的行(但是只打印一次)
-c: [count]计数同样的行出现的次数

注意:重复的行:指的是紧邻的两行内容相同,所以uniq命令一般都会放在sort命令的后面。

你可能感兴趣的:(Linux常用的文本处理命令)