目录
文本工具
文本截取工具
- 文本内容: less、more和cat、tac、rev
- 文本截取: head和tail
- 按列截取: cut和paste
- 关键字截取: grep
cat
cat [OPTIONS] [FILES]
将文件连接到标准输出,查看文本。如果没有文件,或者当文件为-时,读取标准输入。
OPTIONS | 含义 |
---|---|
-A, –show-all | 相当于-vET |
-b, –number-nonblank | 非空行编号 |
-e | 相当于-vE |
-E, –show-ends | 显示行结束符$ |
-n, –number | 显示行号 |
-s, –squeeze-blank | 连续空行成一行 |
-t | 相当于-vT |
-T, –show-tabs | 显示制表符为^I |
-v, –show-nonprinting | 使用^和M-引用,除了LFD和TAB |
test.txt
1 | Mutability |
more
more [OPTIONS] [FILES]
分页查看文本。
OPTIONS | 含义 |
---|---|
-d | 显示翻页提示 |
-[number] | 每个屏幕的行数 |
+[number] | 从行号[number]开始显示 |
+/[string] | 查找从[string]开始显示 |
b | 上一页 |
空格 | 下一页 |
回车 | 下一行 |
less
less is more
less [OPTIONS] [FILES]
h | 帮助 |
q | 退出 |
e | 下一行 |
y | 上一行 |
b | 上一页 |
z f | 下一页 |
F | 一直打印,相当于tail -f |
/pattern | 向后查找 |
?pattern | 向前查找 |
&pattern | 只显示符合的行 |
g | 首行 |
G | 最后一行 |
p% | 到文件开头,或者是文件的百分之p |
head
head [OPTIONS] [FILES]
打印每个文件的前十行。超过一个文件时,会打印文件名。
OPTIONS | 含义 |
---|---|
-c, –bytes=[-]NUM | 打印每个文件的前几个字节。 NUM为负时,打印每个文件的除最后NUM字节的全部内容 |
-n, –lines=[-]NUM | 打印每个文件的前几行(默认是10)。 NUM为负时,打印每个文件的除最后NUM行的全部内容 |
-q, –quiet, –silent | 不打印文件名 |
-v, –verbose | 总是打印文件名 |
tail
tail [OPTIONS] [FILES]
打印每个文件的最后十行。超过一个文件时,会打印文件名。
OPTIONS | 含义 |
---|---|
-c, –bytes=[+]NUM | 打印每个文件的最后几个字节。 -c +NUM,打印每个文件的除开头NUM字节的全部内容 |
-f, –follow[={name | descriptor}] |
-F | 相当于–follow=name –retry |
-n, –lines=[+]NUM | 打印每个文件的最后几行(默认是10)。 -n +NUM,打印每个文件的除开头前NUM行的全部内容 |
-q, –quiet, –silent | 不打印文件名 |
–retry | 如果文件不可访问,会继续尝试打开它 |
-v, –verbose | 总是打印文件名 |
cut
cut [OPTIONS] [FILES]
打印每个文件的每一行被选定的部分。
OPTIONS | 含义 |
---|---|
-b, –bytes=LIST | 截取LIST字节 |
-c, –character=LIST | 截取LIST字符 |
-d, –delimiter=DELIM | 指定分隔符string,默认tab |
-f, –fields=LIST | 分隔后的几列 |
–complement | 去除选定的字节、字符或字段集 |
-s, –only-delimited | 不打印不包含限定的行 |
–output-delimiter=STRING | 输出分隔符string |
paste
paste [OPTIONS] [FILES]
合并文件同行号的到一行。
OPTIONS | 含义 |
---|---|
-d, –delimiters=LIST | 指定分隔符,默认tab |
-s, –serial | paste one file at a time instead of in parallel |
文本分析工具
wc
wc [OPTIONS] [FILES]
打印文件的行数、字数、字节数和文件名到一行。
OPTIONS | 含义 |
---|---|
-c, –bytes | 打印字节数 |
-m, –chars | 打印字符数 |
-l, –lines | 打印行数 |
-L, –max-line-length | 打印最长行的长度 |
-w, –words | 打印单词数 |
1 | [root@controller-1 /root]$wc /etc/passwd |
sort
sort [OPTIONS] [FILES]
文本排序。
ORDERING OPTIONS | 含义 |
---|---|
-b, –ignore-leading-blanks | 忽略开头的空格 |
-d, –dictionary-order | 只考虑空格、字符和数字 |
-f, –ignore-case | 忽略大小写 |
-g, –general-numeric-sort | 按数字排序 |
-i, –ignore-nonprinting | 只考虑可被打印的字符 |
-M, –month-sort | 月份排序((unknown) < ‘JAN’ < … < ‘DEC’) |
-h, –human-numeric-sort | 按可阅读的数字排序(例如:2K 1G) |
-n, –numeric-sort | 按数字排序 |
-R, –random-sort | 随机 |
-r, –reverse | 反向 |
OTHER OPTIONS | 含义 |
---|---|
-k, –key=KEYDEF | 指定KEY排序,KEYDEF定义位置和类型信息 |
-o, –output=FILE | 输出文件 |
-t, –field-separator=SEP | 分隔符,排序时按指定字符分隔 |
-u, –unique | 去除重复行 |
uniq
uniq [OPTIONS] [FILES]
去除重复行。
OPTIONS | 含义 |
---|---|
-c, –count | 在每一行前面打印重复行的出现次数 |
-d, –repeated | 只打印重复行 |
-D | 打印重复行(所有的) |
-i, –ignore-case | 忽略大小写 |
-s, –skip-chars=N | 忽略前N个字符 |
-u, –unique | 只打印不重复行 |
diff
diff [OPTIONS] [FILES]
按行比较文件。
OPTIONS | 含义 |
---|---|
–normal | 打印普通结果,默认 |
-q, –brief | 当文件不同时,打印提示 |
-s, –report-identical-file | 当文件相同时,打印提示 |
-c, -C NUM, –context[=NUM] | 打印NUM(默认3)行上下文,以分开的方式 |
-u, -U NUM, –unified[=NUM] | 打印NUM(默认3)行上下文,以合并的方式 |
-e, –ed | 输出ed脚本 |
-y, –side-by-side | 打印两列 |
-W, –width=NUM | 每列至少NUM(默认130)宽度,配合-y使用 |
–left-column | 只打印左边列,配合-y使用 |
–suppress-common-lines | 只打印不同行,配合-y使用 |
-p, –show-c-function | 若比较C语言的程序文件时,显示差异所在的函数名 |
–label LABEL | 标签名替换文件名和时间戳,配合-c或-u使用 |
-t, –expand-tabs | 在输出时,将tab字符展开 |
-T, –initial-tab | 在每行前面加上tab字符 |
–tabsize=NUM | tab字符大小(默认8) |
-l, –paginate | 分页 |
-r, –recursive | 递归比较找到的所有子目录 |
–no-dereference | 不遵循符号链接 |
-N, –new-file | 将没有的文件视为空 |
–ignore-file-name-case | 比较文件名时忽略大小写 |
–no-ignore-file-name-case | 比较文件名时不忽略大小写 |
-x, –exclude=PAT | 不比较指定文件PAT |
-X, –exclude-from=FILE | 不比较指定文件中的文件 |
-S, –starting-file=FILE | 从指定目录开始比较 |
–from-file=FILE1 | 用FILE1和其他文件比较,FILE1可以是目录 |
–to-file=FILE2 | 用其他文件和FILE2比较, FILE2可以是目录 |
-i, –ignore-case | 比较文件内容时,忽略大小写 |
-E, –ignore-tab-expansion | 比较文件内容时,忽略tab扩展 |
-Z, –ignore-trailing-space | 忽略行尾的空格 |
-b, –ignore-space-change | 忽略空格数量 |
-w, –ignore-all-space | 忽略所有空格 |
-B, –ignore-blank-lines | 忽略空行 |
-I, –ignore-matching-lines=RE | 忽略符合RE的行 |
-a, –text | 将所有文件视为文本文件 |
-d, –minimal | 以较小的单位来做比较 |
–color[=WHEN] | 颜色,WHEN可以是never、always或者auto(默认auto) |
grep
grep [OPTIONS] PATTERN [FILES]
PATTERN
OPTIONS | 含义 |
---|---|
-E, –extended-regexp | PATTERN是扩展正则表达式 |
正则表达式
基本正则表达式
字符匹配
字符 | 含义 |
---|---|
. | 匹配单个字符 |
[] | 匹配中括号里任意字符 |
[^] | 排除中括号里任意字符 |
[:alnum:] | 匹配字母和数字 |
[:digit:] | 匹配数字 |
[:alpha:] | 匹配字母 |
[:lower:] | 匹配小写字母 |
[:upper:] | 匹配大写字母 |
[:blank:] | 匹配空白字符(空格和tab) |
[:space:] | 匹配水平和垂直空白符 |
[:cntrl:] | 匹配不可打印控制字符 |
[:graph:] | 匹配可打印的非空字符 |
[:print:] | 匹配可打印的字符 |
[:punct:] | 匹配标点符号 |
匹配次数
字符 | 含义 |
---|---|
* | 匹配前面的字符>0次 |
.* | 匹配任意长度的任意字符 |
\? | 匹配前面的字符0或1次 |
\+ | 匹配前面的字符>1次 |
\{n\} | 匹配前面字符n次 |
\{m, n\} | 匹配前面字符至少m次,最多n次 |
{, n\} | 匹配前面字符最多n次 |
{n, \} | 匹配前面字符最少n次 |
位置匹配
字符 | 含义 |
---|---|
^ | 行首 |
$ | 行尾 |
^$ | 空行 |
\< 或 \b | 词首 |
\> 或 \b | 词尾 |
\<WORD\> | 整个单词 |
分组
字符 | 含义 |
---|---|
\(WORD\) | 字符串作为整体 |
\| | 或者 |
\1 \2 | 分组引用 |