当前位置:首页>Linux>Linux 文本处理的“组合拳”,掌握了它们就掌握了 Shell 数据处理的核心.

Linux 文本处理的“组合拳”,掌握了它们就掌握了 Shell 数据处理的核心.

  • 2026-09-02 20:13:27
Linux 文本处理的“组合拳”,掌握了它们就掌握了 Shell 数据处理的核心.

     这几个命令是 Linux 文本处理的“组合拳”,掌握了它们就掌握了 Shell 数据处理的核心。结合刚才我们讨论的文件操作,我为你整理了这 7 个命令的详细解析和对比。

📋 核心命令速查表

命令   全称/含义   核心功能

echo   回声           打印文本或变量值,常用于输                                   出提示或写入单行内容

cat   concatenate   查看、合并文件,或创建/追加内容

uniq   unique       去重,报告或删除重复的相邻行

cut   切割             按列(字段)或字符位置提取数据

paste   粘贴         按行合并列将文件内容横向“粘贴”

join   连接           基于共同字段(列)合并两个文件,                           类似数据库 JOIN

split   分割           将大文件切割成多个小文件

🧰 详细功能与用法

1. echo:输出与赋值

最简单的输出命令,常配合重定向 > 或 >> 使用。

*   基本用法:echo "Hello World"

*   写入文件(覆盖):

        echo "This is new content" > file.txt

*   追加内容:

    echo "This line is appended" >> file.txt

2. cat:查看与合并

最常用的文本处理命令。

*   查看:cat file.txt

*   合并:cat file1.txt file2.txt > combined.txt

*   带行号查看:cat -n file.txt

*   创建文件(交互式,Ctrl+D 结束):

        cat > newfile.txt

3. uniq:去重

注意:uniq 默认只去除连续的重复行,通常配合 sort 使用。

*   去重(需先排序):

        sort file.txt | uniq

*   统计重复次数:uniq -c

*   仅显示重复的行:uniq -d

4. cut:列提取

擅长从每行中截取指定部分。

*   按字符位置:cut -c 1-5 file.txt (取第1-5个字符)

*   按分隔符(如 CSV):

        # 以冒号为分隔符,取第1列和第3列

    cut -d ':' -f 1,3 /etc/passwd

5. paste:列合并

与 cat 的“上下堆叠”不同,paste 是“左右拼接”。

*   默认合并(用制表符分隔):

        paste file1.txt file2.txt

*   自定义分隔符:

        # 用逗号连接

    paste -d ',' file1.txt file2.txt

*   将单文件多行转为一行:

        paste -s file.txt

6. join:关联合并

比 paste 更智能,它基于两个文件的相同字段进行匹配合并(类似 SQL 的 inner join)。

*   前提:两个文件必须已经按关联字段排序。

*   基本用法:

        join file1.txt file2.txt

*   指定分隔符:join -t ',' file1.csv file2.csv

*   外连接:join -a 1 file1 file2 (显示 file1 中所有行,包括不匹配的)

7. split:文件分割

处理大文件的利器。

*   按行分割(默认 1000 行):

        split -l 500 largefile.txt

*   按大小分割:

     split -b 10M largefile.txt # 每个 10MB

*   自定义后缀:

        split -d -a 3 largefile.txt part_ # 生成 part_000, part_001...

💡 组合技示例

假设你有一个日志文件,想要分析特定数据:

1.  分割大日志(如果文件太大):

    split -b 100M access.log chunk_

2.  提取特定列(如 IP 地址):

    cut -d ' ' -f 1 access.log

3.  统计访问次数:

    cut -d ' ' -f 1 access.log | sort | uniq -c | sort -nr

这些命令是 Shell 脚本的基石。

最新文章

随机文章