仅使用awk和sed修改第2列
发布时间:2020-12-14 03:01:34 所属栏目:Linux 来源:网络整理
导读:我有一个3列的列表: 2547123456789,5391074043372870,639027123456789 我想像这样修改第二列: sed 's/([0-9])([0-9])/21/g' so that it becomes:3519700434738207 我的问题是如何在一行awk / sed中执行此操作,同时保持其他列不变,以便我的最终文件具
我有一个3列的列表:
2547123456789,5391074043372870,639027123456789 我想像这样修改第二列: sed 's/([0-9])([0-9])/21/g' so that it becomes: 3519700434738207 我的问题是如何在一行awk / sed中执行此操作,同时保持其他列不变,以便我的最终文件具有: 2547123456789,3519700434738207,639027123456789 谢谢 解决方法#!/bin/sh awk -F,'{ printf("%s,",$1) len=split($2,a,"") for(i=1;i<len;i+=2) printf("%s%s",a[i+1],a[i]) printf(",%sn",$3) }' /path/to/input/file 输入 $cat infile 2547123456789,639027123456789 1234567890123,1234567890123456,123456789012345 产量 awk -F,'{printf("%s,$1);len=split($2,"");for(i=1;i<len;i+=2)printf("%s%s",a[i]);printf(",$3)}' ./infile 2547123456789,2143658709214365,123456789012345 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |