【问题标题】:Shell script sed - replace numbersShell 脚本 sed - 替换数字
【发布时间】:2018-09-11 12:13:54
【问题描述】:

我有一个包含地址、姓名和电话号码的文件。

原行:

Elizabeth Salnger 117 Someone St - Fresno, CA013023459876AcccountActive 

预期线路:

Elizabeth Salnger 117 Someone St - Fresno, CA099999999999AcccountActive

我有一个功能

sed -r 's/./&\n/64;s//\n&/52;:a;s/(\n.[0-9]+)[0-9](.*\n)/\1P\2/;ta;s/\n//g' 

Obs:这个函数是用来转换各种文件的,所以我必须在sed函数上设置位置。

【问题讨论】:

  • 不是很清楚你想做什么。我认为您可以添加更多示例和预期结果。
  • @HugoTeixeira - 更新了原始问题和预期结果。
  • 你必须告诉我们你想要做什么,不要依赖我们通过阅读你的代码来弄清楚你的意图,我假设它不会做你做的事情想要然后从那开始倒退。
  • 我想补充电话号码。我得到了 013023459876,我想要 099999999999。
  • 如果 sed 's/013023459876/099999999999/' 不是您所需要的,请再次尝试解释您的要求,并将该解释放在您的问题中,而不是作为评论添加。

标签: regex shell sed


【解决方案1】:

不确定它是你要找的,但你可以试试这个 sed:

sed -E 's/(.*,[^0-9]*)[0-9]*(.*)/\1099999999999\2/' infile

如果没问题,我可以补充说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-23
    • 2017-11-17
    • 2022-07-21
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多