Skip to content
← 返回Linux列表
命令与系统观察

Linux:文本处理与检索 ​

读取、查看与检索 ​

cat(Linux) · 打印和连接文件 ​

另请参阅:bat。 更多信息:https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html。

  • 将文件内容打印到 stdout:
bash
cat {{路径/到/文件}}
  • 将多个文件连接到一个输出文件:
bash
cat {{路径/到/文件1 路径/到/文件2 ...}} > {{路径/到/输出文件}}
  • 将多个文件附加到输出文件:
bash
cat {{路径/到/文件1 路径/到/文件2 ...}} >> {{路径/到/输出文件}}
  • 将 stdin 写入文件:
bash
cat - > {{路径/到/文件}}
  • 显示带有行号的所有行:
bash
cat {{[-n|--number]}} {{路径/到/文件}}
  • 显示不可打印字符和空白字符(如果非 ASCII,则带有 M- 前缀):
bash
cat {{[-vte|--show-nonprinting -t -e]}} {{路径/到/文件}}

head(Linux) · 输出文件的开头部分的内容 ​

另请参阅:tail。 更多信息:https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html。

  • 输出文件的前几行:
bash
head {{[-n|--lines]}} {{数目}} {{路径/到/文件}}
  • 输出文件的前几个字节:
bash
head {{[-c|--bytes]}} {{数目}} {{路径/到/文件}}
  • 输出文件除最后几行之外的所有内容:
bash
head {{[-n|--lines]}} -{{数目}} {{路径/到/文件}}
  • 输出文件除最后几个字节之外的所有内容:
bash
head {{[-c|--bytes]}} -{{数目}} {{路径/到/文件}}

more(Linux) · 以交互方式显示文件,允许滚动和搜索 ​

另请参阅:less。 更多信息:https://manned.org/more。

  • 打开文件:
bash
more {{路径/到/文件}}
  • 显示特定行:
bash
more +{{行号}} {{路径/到/文件}}
  • 转到下一页:
bash
<空格键>
  • 搜索字符串(按 <n> 转到下一个匹配项):
bash
</>{{关键字}}<Enter>
  • 退出:
bash
<q>
  • 显示有关交互式命令的帮助:
bash
<h>

创建、修改与转换 ​

sed(Linux) · 以脚本方式编辑文本 ​

另请参阅:awk, ed。 更多信息:https://www.gnu.org/software/sed/manual/sed.html。

  • 将所有输入行中出现的 apple(基本正则语法)替换为 mango(基本正则语法),并将结果打印到 stdout:
bash
{{命令}} | sed 's/apple/mango/g'
  • 将所有输入行中出现的 apple(扩展正则语法)替换为 APPLE (扩展正则语法),并将结果打印到 stdout:
bash
{{命令}} | sed {{[-E|--regexp-extended]}} 's/(apple)/\U\1/g'
  • 用 mango(基本正则语法)替换特定文件中出现的所有 apple(基本正则语法),并覆盖原文件:
bash
sed {{[-i|--in-place]}} 's/apple/mango/g' {{路径/到/文件}}
  • 执行特定的脚本,并将结果打印到 stdout:
bash
{{命令}} | sed {{-f|--file}} {{路径/到/脚本.sed}}
  • 打印第一行到 stdout:
bash
{{命令}} | sed {{[-n|--quiet]}} '1p'
  • 删除文件第一行:
bash
sed {{[-i|--in-place]}} 1d {{路径/到/文件}}
  • 插入新行到文件的第一行:
bash
sed {{[-i|--in-place]}} '1i\your new line text\' {{路径/到/文件}}

专用工具与其他操作 ​

ascii(Linux) · 显示 ASCII 字符的别名 ​

更多信息:http://www.catb.org/~esr/ascii/ascii.html。

  • 显示一个 ASCII 字符的别名:
bash
ascii {{a}}
  • 以较短和脚本友好模式显示 ASCII 字符的别名:
bash
ascii -t {{a}}
  • 显示多个 ASCII 字符的别名:
bash
ascii -s {{tldr}}
  • 显示十进制 ASCII 字符表:
bash
ascii -d
  • 显示十六进制 ASCII 字符表:
bash
ascii -x
  • 显示八进制 ASCII 字符表:
bash
ascii -o
  • 显示二进制 ASCII 字符表:
bash
ascii -b
  • 显示选项总结和整个 ASCII 字符表:
bash
ascii

balooctl(Linux) · KDE Plasma 的文件索引和搜索框架 ​

更多信息:https://wiki.archlinux.org/title/Baloo。

  • 显示索引器状态:
bash
balooctl status
  • 开启或关闭文件索引器:
bash
balooctl {{enable|disable}}
  • 清除索引数据库:
bash
balooctl purge
  • 挂起文件索引器:
bash
balooctl suspend
  • 恢复文件索引器:
bash
balooctl resume
  • 显示 Baloo 占用的磁盘空间大小:
bash
balooctl indexSize
  • 检查未索引的文件并索引它们:
bash
balooctl check
  • 显示帮助:
bash
balooctl {{[-h|--help]}}

diff3(Linux) · 逐行比较三个文件 ​

更多信息:https://www.gnu.org/software/diffutils/manual/diffutils.html#Invoking-diff3。

  • 比较文件:
bash
diff3 {{路径/到/文件1}} {{路径/到/文件2}} {{路径/到/文件3}}
  • 展示所有的变化,同时列出冲突:
bash
diff3 {{[-A|--show-all]}} {{路径/到/文件1}} {{路径/到/文件2}} {{路径/到/文件3}}

dos2unix(Linux) · 将 DOS 样式的行尾更改为 Unix 样式 ​

用 LF 替换 CRLF。 另请参阅:unix2dos, unix2mac, mac2unix。 更多信息:https://manned.org/dos2unix。

  • 更改文件的行尾:
bash
dos2unix {{文件名}}
  • 使用 Unix 样式的行尾创建副本:
bash
dos2unix {{[-n|--newfile]}} {{输入文件名}} {{新文件名}}

hexdump(Linux) · 一个 ASCII、十进制、十六进制、八进制转换查看工具 ​

另请参阅:hexyl, od, xxd。 更多信息:https://manned.org/hexdump。

  • 打印文件的十六进制表示形式,重复的行用 '*' 替代:
bash
hexdump {{路径/到/文件}}
  • 以十六进制显示输入偏移量,并在最后两列中显示其 ASCII 表示形式:
bash
hexdump {{[-C|--canonical]}} {{路径/到/文件}}
  • 显示文件的十六进制表示,但只解释输入的指定字节数:
bash
hexdump {{[-C|--canonical]}} {{[-n|--length]}} {{字节数}} {{路径/到/文件}}
  • 不使用 '*' 替换重复的行:
bash
hexdump {{[-v|--no-squeezing]}} {{路径/到/文件}}

mac2unix(Linux) · 将旧式 Mac 的 CR 行尾更改为 Unix 的 LF ​

用 LF 替换 CR;现代 macOS 文本通常也使用 LF。 另请参阅:unix2dos, unix2mac, dos2unix。 更多信息:https://manned.org/mac2unix。

  • 更改文件的行尾:
bash
mac2unix {{文件名}}
  • 使用 Unix 样式的行尾创建副本:
bash
mac2unix {{[-n|--newfile]}} {{文件名}} {{新文件名}}

ul(Linux) · 执行文本的下划线 ​

给定字符串中的每个字符必须单独加下划线。 更多信息:https://manned.org/ul。

  • 在适用的情况下用下划线显示文件的内容:
bash
ul {{文件路径}}
  • 用由破折号组成的下划线显示文件的内容 -:
bash
ul {{[-i|--indicated]}} {{文件路径}}

unix2dos(Linux) · 将 Unix 样式的行尾更改为 DOS 样式 ​

用 CRLF 替换 LF。 另请参阅:unix2mac, dos2unix, mac2unix。 更多信息:https://manned.org/unix2dos。

  • 更改文件的行尾:
bash
unix2dos {{文件名}}
  • 使用 DOS 样式的行尾创建副本:
bash
unix2dos {{[-n|--newfile]}} {{文件名}} {{新文件名}}

unix2mac(Linux) · 将 Unix 的 LF 行尾更改为旧式 Mac 的 CR ​

用 CR 替换 LF;这不是现代 macOS 文本的默认换行。 另请参阅:unix2dos, dos2unix, mac2unix。 更多信息:https://manned.org/unix2mac。

  • 更改文件的行尾:
bash
unix2mac {{文件名}}
  • 使用 macOS 样式的行尾创建副本:
bash
unix2mac {{[-n|--newfile]}} {{文件名}} {{新文件名}}

示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读