{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-07-11 10:19:01","updateBy":"admin","updateTime":"2024-07-11 10:19:01","remark":null,"id":83,"articleTitle":"每天一个Linux命令（七）wc","articleUrl":"linux_wc","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"wc是 Linux/Unix 系统中用于统计文件内容的命令（Word Count），支持统计文件的行数、单词数、字节数以及字符数。它是文本处理中常用的基础命令之一。","articleContent":"`wc` 是 Linux/Unix 系统中用于**统计文件内容**的命令（Word Count），支持统计文件的行数、单词数、字节数以及字符数。它是文本处理中常用的基础命令之一。\n\n---\n\n## 语法\n\n```bash\nwc [选项] [文件...]\n```\n\n---\n\n## 常用选项\n\n| 选项 | 说明             |\n| ---- | ---------------- |\n| `-l` | 统计行数         |\n| `-w` | 统计单词数       |\n| `-c` | 统计字节数       |\n| `-m` | 统计字符数       |\n| `-L` | 显示最长行的长度 |\n\n---\n\n## 输出格式\n\n默认输出格式（无选项时）：\n\n```bash\n行数 单词数 字节数 文件名\n```\n\n---\n\n## 使用示例\n\n### 1. 统计文件的行数、单词数和字节数\n\n```bash\nwc file.txt\n```\n\n输出示例：\n\n```bash\n3  12  64 file.txt\n```\n\n说明：\n\n- `3`：行数\n- `12`：单词数\n- `64`：字节数\n\n---\n\n### 2. 仅统计行数\n\n```bash\nwc -l file.txt\n```\n\n输出：\n\n```bash\n3 file.txt\n```\n\n---\n\n### 3. 仅统计单词数\n\n```bash\nwc -w file.txt\n```\n\n输出：\n\n```bash\n12 file.txt\n```\n\n---\n\n### 4. 仅统计字节数\n\n```bash\nwc -c file.txt\n```\n\n输出：\n\n```bash\n64 file.txt\n```\n\n---\n\n### 5. 统计多个文件\n\n```bash\nwc file1.txt file2.txt\n```\n\n输出示例：\n\n```bash\n3  12  64 file1.txt\n5  20  96 file2.txt\n8  32 160 total\n```\n\n---\n\n### 6. 统计标准输入的内容\n\n```bash\necho \"Hello, World!\" | wc\n```\n\n输出：\n\n```bash\n1  2  14\n```\n\n---\n\n### 7. 显示最长行的长度\n\n```bash\nwc -L file.txt\n```\n\n输出：\n\n```bash\n20 file.txt\n```\n\n---\n\n## 注意事项\n\n1. **单词定义**：以空格、Tab 或换行符分隔的字符串为一个单词\n2. **字节与字符**：对于 ASCII 文本，字节数和字符数相同；对于 Unicode 文本，字节数可能大于字符数\n3. **文件不存在**：若文件不存在，会报错 `No such file or directory`\n\n---\n\n## 常见错误处理\n\n### 错误示例：文件不存在\n\n```bash\nwc non_existing_file.txt\n# 输出：wc: non_existing_file.txt: No such file or directory\n```\n\n### 错误示例：权限不足\n\n```bash\nwc /root/file.txt\n# 输出：wc: /root/file.txt: Permission denied\n```\n\n---\n\n## 进阶技巧\n\n### 1. 结合 `find` 统计目录下所有文件\n\n```bash\nfind . -name \"*.txt\" -exec wc {} \\;\n```\n\n输出每个 `.txt` 文件的统计信息\n\n---\n\n### 2. 结合 `awk` 提取特定统计值\n\n```bash\nwc -l file.txt | awk '{print $1}'\n```\n\n输出：\n\n```bash\n3\n```\n\n---\n\n### 3. 统计代码行数（忽略空行）\n\n```bash\ngrep -v '^$' code.py | wc -l\n```\n\n说明：`grep -v '^$'` 过滤空行\n\n---\n\n### 4. 统计当前目录下文件的总行数\n\n```bash\nfind . -type f -exec cat {} + | wc -l\n```\n\n---\n\n### 5. 统计 CSV 文件的行数（忽略标题行）\n\n```bash\ntail -n +2 data.csv | wc -l\n```\n\n说明：`tail -n +2` 跳过第一行\n\n---\n\n### 6. 统计 Git 仓库的代码行数\n\n```bash\ngit ls-files | xargs wc -l\n```\n\n---\n\n### 7. 统计日志文件中的错误行数\n\n```bash\ngrep \"ERROR\" app.log | wc -l\n```","categoryId":1,"viewCount":61,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}