文章详情

专注互联网科技,赋能企业数字化发展

Day15 文本处理神器 sed

作者:Day15 文本处理神器 sed

你是否也曾痛苦地手动修改成百上千行文本? 你是否尝试用 sed 替换文字,却发现原文件“毫无变化”? 你是否看过 s/.*//g 这样的“字符咒语”,却一点看不懂? 别急!今天这篇推文就带你从零掌握 Linux 中文本处理瑞士军刀——sed! 🧾 什么是 sed? sed 是 stream editor 的缩写,它是 Linux 中最强大的文本流处理工具之一,能实现行级别的批量编辑、替换、删除、插入操作。 ✔️ 支持正则表达式 ✔️ 快速处理大型文件 ✔️ 不需要打开文件,命令即操作! 🧩 基本语法格式 sed [选项] '命令' 文件名 最常用的 命令 是替换命令: sed 's/原始内容/替换内容/修饰符' 文件名 ✅ 常见 sed 选项解释 -n 安静模式:不自动输出处理结果(需用 p 明确打印) -i 原地修改(修改原始文件) -e 明确指定多个编辑命令 -r 使用扩展正则表达式(相当于 grep -E) 🔄 替换操作 s/// 是核心! 🔎 匹配更复杂内容(支持正则!) sed -E 's/^chr([XY])/chromosome_\1/' genome.txt 解释: ^chr([XY]):匹配以 chrX 或 chrY 开头的行 \1:表示正则中的第一个分组 替换为 chromosome_X 或 chromosome_Y 📌 插入 / 删除操作 a 在匹配行后追加一行 i 在匹配行前插入一行 d 删除匹配行 c 替换整行内容 🧠 高阶用法举例 1️⃣ 删除空行: sed '/^$/d' file.txt 2️⃣ 删除带注释的行(以 # 开头): sed '/^\s*#/d' file.txt 3️⃣ 替换整行内容: sed '/^Title:/c Title: this is new' file.txt 4️⃣ 显示第 3 到 5 行: sed -n '3,5p' file.txt 5️⃣ 仅替换第 2 行的内容: sed '2s/foo/bar/' file.txt ❓如何多处替换? sed -e 's/A/X/g' -e 's/B/Y/g' file.txt ✅ sed 思维导图 s/pattern/replacement/ 修饰符 → 替换 /行号/命令 → 定位 /^、$、[]、.* → 正则匹配 a、i、d、c → 插入、删除、替换整行 -n + p → 精准打印输出 -i → 原地修改文件 \s —— 匹配空白字符(空格、TAB、换行等) \s 是正则表达式中的“空白字符”通配符 它可以匹配: 普通空格(Space) 制表符(Tab,\t) 换行符(\n,通常不匹配整行但在某些扩展中可以) 其他空白字符 ✅ 拓展:其他正则锚点 ^ 行首 $ 行尾 \b 单词边界 \A 文件开头 \Z 文件结尾 #生信 #Linux #前端入门 #人类高质量科研工具

返回新闻列表