跳到主要内容

文档编辑

2024年04月26日
柏拉文
越努力,越幸运

一、ed


二、ex


三、tr


四、wc


五、col


六、fmt


七、jed


八、joe


九、let


十、sed


Linux sed 是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数

  • -e<script>或--expression=<script>: 以选项中指定的script来处理输入的文本文件。

  • -f<script文件>或--file=<script文件>: 以选项中指定的script文件来处理输入的文本文件。

  • -h或--help: 显示帮助。

  • -n或--quiet或--silent: 仅显示script处理后的结果。

  • -V或--version: 显示版本信息。

动作

  • a: 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

  • c: 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

  • d: 删除,因为是删除啊,所以 d 后面通常不接任何东东;

  • i: 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

  • p: 打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

  • s: 取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!

11.1 sed -i 备份文件 "s/xxx/yyy/g" 目标文件

sed -i 备份文件 "s/xxx/xxx/g" 目标文件 将目标文件中的 xxx 全局替换为 yyy, 并支持备份。如下所示:

sed -i a.history.txt "s/bcd.com/bbb.com/g" a.txt

a.txt 中的 bcd.com 全局替换为 bbb.com, 并将原来的备份到 a.history.txt

十一、comm


十二、expr


十三、fold


十四、grep


Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

14.1 语法

grep [options] pattern [files]



grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
  • pattern - 表示要查找的字符串或正则表达式。

  • files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。

  • -a--text: 不要忽略二进制的数据。

  • -A<显示行数>--after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。

  • -b--byte-offset: 在显示符合样式的那一行之前,标示出该行第一个字符的编号。

  • -B<显示行数>--before-context=<显示行数>: 除了显示符合样式的那一行之外,并显示该行之前的内容。

  • -c--count: 计算符合样式的列数。

  • -C<显示行数>--context=<显示行数>-<显示行数>: 除了显示符合样式的那一行之外,并显示该行之前后的内容。

  • -d <动作>--directories=<动作>: 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

  • -e<范本样式>--regexp=<范本样式>: 指定字符串做为查找文件内容的样式。

  • -E--extended-regexp: 将样式为延伸的正则表达式来使用。

  • -f<规则文件>--file=<规则文件>: 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

  • -F--fixed-regexp: 将样式视为固定字符串的列表。

  • -G--basic-regexp: 将样式视为普通的表示法来使用。

  • -h--no-filename: 在显示符合样式的那一行之前,不标示该行所属的文件名称。

  • -H--with-filename: 在显示符合样式的那一行之前,表示该行所属的文件名称。

  • -i--ignore-case: 忽略字符大小写的差别。

  • -l--file-with-matches: 列出文件内容符合指定的样式的文件名称。

  • -L--files-without-match: 列出文件内容不符合指定的样式的文件名称。

  • -n--line-number: 在显示符合样式的那一行之前,标示出该行的列数编号。

  • -o--only-matching : 只显示匹配 PATTERN 部分。

  • -q--quiet或--silent: 不显示任何信息。

  • -r--recursive: 此参数的效果和指定 -d recurse 参数相同。

  • -s--no-messages: 不显示错误信息。

  • -v--invert-match: 显示不包含匹配文本的所有行。

  • -V--version: 显示版本信息。

  • -w--word-regexp: 只显示全字符合的列。

  • -x --line-regexp: 只显示全列符合的列。

  • -y : 此参数的效果和指定 -i 参数相同。

14.2 grep hello file.txt

grep hello file.txt 在文件 file.txt 中查找字符串 hello,并打印匹配的行

14.3 grep -r hello dir/

grep -r hello dir/ 在文件夹 dir 中递归查找所有文件中匹配 hello 的行

14.4 grep "^start.*end$" file.txt

grep "^start.*end$" file.txt 查找以 start 开头、以 end 结尾的行

十五、join


十六、look


十七、pico


十八、sort


十九、uniq


二十、colrm


二十一、egrep


二十二、fgrep


二十三、mtype


二十四、rgrep


二十五、spell


二十六、csplit


二十七、ispell