首页 > 解决方案 > 如何使用 SED(转置)重新排列数字

问题描述

我有一条线:

The ID number for product is 721- 971-4321.` 

我想把区号换成里面的号码,像这样:971- 721-4321

这是我所拥有的:

17s/\([654]\)-\([817]\)/\2-\1/

所以这个数字在 .txt 文件的第 17 行。线上还有其他东西,但我只想更改号码。

每当我运行脚本时,什么都没有发生。任何建议如何解决这个问题。

标签: sed

解决方案


请您尝试以下操作。

sed 's/\([^0-9]*\)\([^-]*\)\([^0-9]*\)\([^-]*\)\(.*\)/\1\4\3\2\5/' Input_file

说明:我正在使用here的here反向引用功能sed。通过使用正则表达式,我创建了 5 个临时缓冲区,然后按照 OP 的请求重新访问它们以进行输出。

输出如下。

The ID number for product is 971- 721-4321.

推荐阅读