文本批量处理工具:13 种操作一键搞定
把你经常在终端敲的
sort | uniq | nl | sed 's/^/ /'搬到网页上,点点鼠标就行。
背景
作为数通工程师,你可能经常:
- 整理 IP 列表(去重 +排序 +加行号,导给 Excel)
- 处理设备资产清单(去空白行、排序)
- 编辑配置变更清单(统一大小写)
每次都开终端敲命令?麻烦。 搜在线工具?要登录 + 各种广告 + 隐私风险。
干脆做了这个 —— 零依赖、纯前端逻辑、可多选组合。
13 种操作
按类别分组:
🧹 清理类
- 去除每行首尾空白
- 删除空行
- 去除所有空格
- 去除连续空行(保留 1 个)
🔀 排序类
- 升序排序
- 降序排序
- 去重(保留顺序)
🔤 转换类
- 转大写
- 转小写
- 反转每行
- Tab ↔ 4 空格
📝 格式化类
- 添加行号
- 只统计(行数 / 字符数)
工具演示

输入 7 行 IP(含重复 + 无序):
192.168.1.1
192.168.1.2
192.168.1.1
10.0.0.1
192.168.1.2
172.16.0.1
192.168.1.3
勾选:去除空白行 + 去重 + 升序排序 + 添加行号
输出:
1 | 10.0.0.1
2 | 172.16.0.1
3 | 192.168.1.1
4 | 192.168.1.2
5 | 192.168.1.3
使用场景
场景 1:整理资产清单
老板给你一份设备清单(Excel 复制出来乱糟糟):
Switch-01
Switch-03
Switch-01 ← 重复
Switch-02
Switch-04 ← 空行
router-01
→ 勾选【去除空白行 + 去重 + 排序】,3 秒出干净列表。
场景 2:批量生成配置
输入:vlan 10
输入:vlan 20
输入:vlan 30
→ 勾选【添加行号】,输出:
1 | vlan 10
2 | vlan 20
3 | vlan 30
→ 直接贴进配置文件。
场景 3:日志分析预处理
WAF 日志导出来 10000 行,需要:
- 去除 [时间戳]
- 去掉空行
- 按 IP 排序
- 添加行号
→ 勾选 4 项搞定。
场景 4:制作 WordPress 用户名列表
john.doe
jane.smith
john.doe ← 重复
bob
→ 去重 → john.doe, jane.smith, bob
核心实现
每个操作就是一个函数:
def trim_lines(text):
return '\n'.join(line.strip() for line in text.split('\n'))
def remove_empty(text):
return '\n'.join(line for line in text.split('\n') if line.strip())
def dedup(text):
seen = set()
out = []
for line in text.split('\n'):
if line not in seen:
seen.add(line)
out.append(line)
return '\n'.join(out)
def sort_asc(text):
return '\n'.join(sorted(text.split('\n')))
# ... 其他 9 个
按顺序应用:
for op in ops:
current = OPERATIONS[op](current)
整个工具不到 100 行 Python。
vs 命令行
# 等价命令
sort -u ips.txt | nl | sed 's/^[[:space:]]*//' > result.txt
工具的优势:
| 维度 | 命令行 | 网页工具 |
|---|---|---|
| 学习成本 | 高(要记命令) | 零 |
| 跨平台 | 不(Windows 没 sed) | 通吃 |
| 可视化 | 低 | 高(统计对比) |
| 分享 | 难 | 易(URL/截图) |
| 处理 1MB+ | 飞快 | 可能卡 |
日常小数据用工具,大数据用命令行。
在线使用
👉 文本批量处理
如果只是想对比两段文本,用 文本 diff 对比。
未来扩展
可能会加的操作:
- 🔍 提取 IP / 邮箱 / URL
- 🔢 按某列排序
- 📝 替换文本
- 🔗 JSON ↔ CSV
- 🔐 编码转换(UTF-8 ↔ GBK)
📱 关注「网英的日常」,每周一个实用工程师工具!