作为香港服务器的用户,掌握 Linux shell 文本处理是一项超能力,将会极大提高您的工作效率。命令行提供了一组丰富的工具集,可以以外科手术般的精准切割和处理文本数据。在本文中,我们将深入探讨 15 个必知的 Linux shell 文本处理技巧,帮助提高您的生产力。

1. Grep:文本搜索强力工具

Grep 是您进行闪电般快速文本搜索的首选命令。它的基本语法是:

grep "pattern" file.txt

但 grep 的真正力量在于它的选项。例如,要执行不区分大小写的搜索:

grep -i "pattern" file.txt

要递归搜索目录中的所有文件:

grep -r "pattern" directory/

2. Sed:非凡的流编辑器

Sed 是一个强大的流编辑器,可以执行复杂的文本转换。它的基本替换语法是:

sed 's/old/new/g' file.txt

但 sed 可以做更多,比如删除包含某个模式的行:

sed '/pattern/d' file.txt

或在匹配某个模式的行后插入文本:

sed '/pattern/a New line' file.txt

3. Awk:文本处理瑞士军刀

Awk 是一种完整的文本处理语言,打包在一个命令中。它擅长处理结构化文本,如 CSV 或 TSV 文件。例如,要打印 CSV 的第一列和第三列:

awk -F',' '{print $1, $3}' file.csv

Awk 还可以执行计算和条件判断:

awk '{sum+=$1} END {print sum}' numbers.txt

4. Cut:列切割器

Cut 在从结构化文本中提取特定列时很方便。要切割 CSV 的第一列和第四列:

cut -d',' -f1,4 file.csv

5. Sort:行排序机

当您需要对文本行进行排序时,Sort 是您的好朋友。默认情况下,它按字母顺序排序:

sort file.txt

但您也可以按数字排序:

sort -n file.txt

或按特定列排序:

sort -k2 -t',' file.csv

6. Uniq:重复项销毁者

Uniq 对于从已排序的文件中删除重复行至关重要:

sort file.txt | uniq

7. Tr:字符转换器

Tr 非常适合转换或删除字符。要将小写转换为大写:

tr 'a-z' 'A-Z' < file.txt

或删除所有数字:

tr -d '0-9' < file.txt

8. Paste:文件合并器

Paste 可以让您并排组合多个文件:

paste file1.txt file2.txt

9. Wc:字数统计器

Wc 统计文件中的行数、单词数和字符数。要统计行数:

wc -l file.txt

10. Tee:输出分割器

Tee 分割命令输出,同时将其发送到文件和标准输出:

command | tee output.txt

11. Find:文件查找器

Find 是您根据各种条件定位文件的盟友。要按名称查找文件:

find /path/to/directory -name "*.txt"

或查找最近 7 天内修改过的文件:

find /path/to/directory -mtime -7

12. Xargs:命令执行器

Xargs 允许您从标准输入构建和执行命令。一个常见的用例是将其与 find 配对:

find /path/to/directory -name "*.txt" | xargs grep "pattern"

13. Head:文件头部查看器

Head 显示文件的第一部分。要查看前 10 行:

head file.txt

或指定行数:

head -n 5 file.txt

14. Tail:文件尾部查看器

Tail 显示文件的最后一部分。要查看最后 10 行:

tail file.txt

或持续监视文件变化:

tail -f log.txt

15. Diff:文件比较器

Diff 逐行比较两个文件的内容:

diff file1.txt file2.txt

掌握了这 15 个 Linux shell 文本处理利器,您将准备好应对任何文本操作挑战。