15 个强大的 Linux Shell 文本处理技巧

作为香港服务器的用户,掌握 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 文本处理利器,您将准备好应对任何文本操作挑战。