当前位置: 首页 > news >正文

【Linux知识】Linux文本操作相关命令行

Linux文本操作相关命令行

      • **一、文本查找与匹配**
        • `grep` - 文本搜索神器
        • `findstr` (Windows 可用)
      • **二、文本替换**
        • `sed` - 流编辑器
        • `tr` - 字符替换
      • **三、文本提取与截取**
        • `cut` - 按列提取
        • `awk` - 文本处理编程语言
      • **四、文本统计与分析**
        • `wc` - 字词统计
        • `uniq` - 去重
        • `sort` - 排序
      • **五、文件操作与格式化**
        • `paste` - 合并行
        • `column` - 格式化输出
        • `fold` - 折叠长行**
      • **六、高级组合技巧**
        • **管道(|)与重定向(> >>)**
        • **排除文件**
      • **七、实用脚本示例**
        • **1. 删除重复行**
        • **2. 提取 URL**
        • **3. 统计日志访问量**
      • **八、调试技巧**
        • **1. 显示命令执行过程**
        • **2. 逐行执行脚本**
      • **附:命令速查表**

一、文本查找与匹配

grep - 文本搜索神器
# 查找文件中包含 "error" 的行
grep "error" filename.log# 匹配正则表达式(例如邮箱)
grep -E "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b" emails.txt# 忽略大小写
grep -i "pattern" file.txt# 显示匹配行号
grep -n "pattern" file.txt# 统计匹配次数
grep -c "pattern" file.txt
findstr (Windows 可用)
# 查找包含 "success" 的行
findstr /C:"success" file.txt

二、文本替换

sed - 流编辑器
# 将 "old" 替换为 "new"(仅替换第一处)
sed 's/old/new/' file.txt# 全局替换
sed -i 's/old/new/g' file.txt  # -i 直接修改原文件(Linux)# 示例:删除注释行(以 # 开头)
sed '/^#/d' script.sh
tr - 字符替换
# 将空格替换为逗号
tr ' ' ',' input.txt > output.csv# 删除特定字符(如删除空行)
tr -d '\n' file.txt

三、文本提取与截取

cut - 按列提取
# 提取第2-5列(字段分隔符默认为空格)
cut -d ' ' -f2-5 filename.log# 提取以冒号分隔的第3部分(如 IP:端口)
cut -d ':' -f3 /etc/passwd
awk - 文本处理编程语言
# 打印每行的第一个字段
awk '{print $1}' file.txt# 统计单词数量
awk '{words++} END {print words}' file.txt# 示例:提取邮箱地址
awk '/@/ {print $0}' emails.txt

四、文本统计与分析

wc - 字词统计
# 统计行数、单词数、字符数
wc filename.txt# 仅统计行数
wc -l filename.txt# 仅统计单词数
wc -w filename.txt
uniq - 去重
# 对排序后的文件去重
sort file.txt | uniq# 统计重复次数
uniq -c sorted_file.txt
sort - 排序
# 按字母顺序排序
sort file.txt# 按数值排序(保留原始格式)
sort -n numbers.txt# 逆序排序
sort -r log.txt

五、文件操作与格式化

paste - 合并行
# 将两列文件合并(按列对齐)
paste file1.txt file2.txt > combined.txt# 列居中对齐
paste -d '|' -s file.txt
column - 格式化输出
# 将文本按指定宽度对齐
column -t -s ' ' input.txt
fold - 折叠长行**
# 每行最多20个字符
fold -w 20 long_file.txt

六、高级组合技巧

管道(|)与重定向(> >>)
# 查找错误并保存结果
grep "error" /var/log/syslog | grep -v "ignored" > errors.log# 分步处理:压缩 -> 解压 -> 查找
tar -xzvf data.tar.gz | grep "keyword"
排除文件
# 在目录中查找文件,排除子目录
find . -type f -not -path "./.git/*" -exec grep "pattern" {} \;

七、实用脚本示例

1. 删除重复行
#!/bin/bash
sort input.txt | uniq -d > unique.txt
2. 提取 URL
grep -oE "(http|https)://[^\" ]+" webpage.html
3. 统计日志访问量
awk '{count[$1]++} END {for (host in count) print host, count[host]}' access.log

八、调试技巧

1. 显示命令执行过程
# 跟踪 `sed` 的修改
sed -i.bak -e 's/foo/bar/' file.txt  # 备份为 .bak
2. 逐行执行脚本
bash -x script.sh  # 显示每条执行的命令

附:命令速查表

命令核心功能典型场景
grep文本搜索日志分析、模式匹配
sed行级文本替换批量修改配置文件
awk文本处理编程数据清洗、报表生成
cut按列提取数据CSV 文件处理
sort排序数据预处理
uniq去重清理重复数据
wc统计字词行数文本长度分析
tr字符替换/删除格式转换
paste合并行数据合并
column格式化输出制作表格

掌握这些命令后,结合管道(|)和重定向(>),可以高效完成绝大多数文本处理任务!

http://www.dtcms.com/a/524769.html

相关文章:

  • Port设置功能开发实践: Pyside6 MVC架构与Model/View/Delegate模式的应用
  • 白之家低成本做网站深圳比较好的建网站公司
  • 深度学习一些知识点(指标+正则化)
  • 企业官方网站建设的作用仿牌 镜像网站
  • java实现多线程分片下载超大文件,支持HTTPS。
  • 数据结构和算法(十)--B树
  • 从零起步学习MySQL || 第九章:从数据页的角度看B+树及MySQL中数据的底层存储原理(结合常见面试题深度解析)
  • HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
  • 新华三H3CNE网络工程师认证—STP状态机与收敛过程
  • 从零起步学习MySQL || 第十章:深入了解B+树及B+树的性能优势(结合底层数据结构与数据库设计深度解析)
  • 阿里云服务器网站备案台州北京网站建设
  • 眼镜网站建设深圳网站设计精选刻
  • CF1060 CD
  • 莱西做网站公司繁体网站模板
  • 学校网站建设培训心得如何登陆建设银行信用卡网站
  • Java 大视界 -- Java 大数据机器学习模型在电商商品推荐系统中的冷启动问题攻克与个性化推荐强化(427)
  • 【总结】Vue中的组件通信方式有哪些?React中的组件通信方式有哪些?
  • 外贸网站优化推广手工制作大全折纸
  • 华为一站式服务建站视觉设计案例
  • 前端大文件分片上传
  • webrtc代码走读(四)-QOS-NACK实现-发送端
  • 主成分分析(PCA)在计算机图形学中的深入解析与应用
  • Kubernetes:实战Pod共享存储
  • 合肥市建设工程造价管理站网站ps网站背景图片怎么做
  • 5118网站是免费的吗网站如何防止重登录
  • 网络编程实战02·从零搭建Epoll服务器
  • IP数据报分片 题
  • 杭州设计 公司 网站建设适合小企业的erp软件
  • 全面掌握PostgreSQL关系型数据库,创建用户创建数据库操作,笔记09
  • 西安市网站制作公司购物商城排名