如何交换文本文件中左侧数字与右侧字符串的位置?
调换文本行中数字与字符串的位置方法
假设你的输入文件名为input.txt,每行格式为「数字 字符串」(字符串可包含空格),以下是几种高效的处理方式:
1. 使用 sed 命令(Linux/Unix 环境)
利用正则表达式匹配并调换字段位置,命令如下:
sed -E 's/^([0-9]+) (.*)/\2 \1/' input.txt > output.txt
- 说明:
^([0-9]+)匹配行首的数字序列,(.*)匹配数字后的所有内容;\2 \1将两个匹配组调换位置,输出结果保存到output.txt。
2. 使用 awk 命令(Linux/Unix 环境)
通过字段分割实现位置调换,兼容字符串含空格的场景:
awk '{print substr($0, index($0,$2)) " " $1}' input.txt > output.txt
- 说明:
substr($0, index($0,$2))提取从第二个字段开始的所有内容(即原字符串部分),再拼接原数字字段$1,完成调换。
3. Python 脚本(跨平台)
适合需要自定义逻辑或跨操作系统的场景,脚本示例:
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: for line in infile: line = line.strip() if not line: continue # 按第一个空格分割,避免拆分字符串内的空格 num_part, str_part = line.split(' ', 1) outfile.write(f"{str_part} {num_part}\n")
- 说明:逐行读取文件,按第一个空格分割数字和字符串部分,调换后写入新文件,支持含空格的字符串。
内容的提问来源于stack exchange,提问作者SUDEM S DAIMARI
相关产品推荐
相关产品推荐

