本帖最后由 77七 于 2023-6-5 13:25 编辑
请教各位老师、大佬:
如何使用gawk或sed或grep等专业文本处理工具 对文本进行以下处理
1.按整行进行去重(如 第一行、第三行相同,则去除第三行);
2.仅对第一列进行排序(第一列相同的所有行保持原有的上下顺序)
文本 编码ansi 数万行 含有多列(空格分隔) 含有数字、汉字、符号,不含引号、叹号;
批处理 编码ansi
如 1.txt- 江苏 盐城
- 江苏 苏州 宿迁
- 浙江 杭州
- 江苏 南京
- 江苏 盐城
- 江苏 苏州
- 安徽 合肥
复制代码 20230605 13:25 重新修改 1.txt
- 浙江 杭州
- 江苏 盐城
- 江苏 苏州 宿迁
- 江苏 南京
- 江苏 盐城
- 江苏 苏州
- 安徽 合肥
复制代码
希望几秒内处理完成,结果直接覆盖,或者得到 2.txt
2.txt
20230605 13:19 修改
utf-8编码的1.txt sort排序及手动处理结果:
- 江苏 盐城
- 江苏 苏州 宿迁
- 江苏 南京
- 江苏 苏州
- 浙江 杭州
- 安徽 合肥
复制代码
ansi编码的1.txt sort排序及手动处理结果:
- 安徽 合肥
- 江苏 盐城
- 江苏 苏州 宿迁
- 江苏 南京
- 江苏 苏州
- 浙江 杭州
复制代码
如上,排序了江苏、浙江、安徽;去除了重复行(第二个 江苏 盐城);
江苏 盐城;江苏 苏州 宿迁;江苏 南京;江苏 苏州; 的上下顺序不变。
谢谢!
补充说明:
上述2.txt结果是我错误的对utf-8编码的1.txt经过sort排序后,手动加工形成的。
像江苏、浙江、安徽的上下顺序,不影响实际使用。 |