当前位置: 技术问答>linux和unix
求shell脚本,急
来源: 互联网 发布时间:2017-01-26
本文导语: 文件内容如下 B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown 实现第一个A分号的内容WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown 替换第二B分号的内容:WA6X3XN,V200...
文件内容如下
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
实现第一个A分号的内容WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown
替换第二B分号的内容:WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
倒过来也可以实现;
用了sed 命令替换103成005后,
B;A;WA6X3XN,V200R001C00B005;WA6X35K,V200R001C00B005;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
再把005替换成103,结果只是前面替换了,后面的没有替换
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
sed 's/005/103/g' filename
以上两个问题求解
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
实现第一个A分号的内容WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown
替换第二B分号的内容:WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
倒过来也可以实现;
用了sed 命令替换103成005后,
B;A;WA6X3XN,V200R001C00B005;WA6X35K,V200R001C00B005;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
再把005替换成103,结果只是前面替换了,后面的没有替换
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
sed 's/005/103/g' filename
以上两个问题求解
|
$ sed -n 's/^(...;)(.*)([A-B];)(.*)$/1232/p' file
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;
$ sed -n 's/^(...;)(.*)([A-B];)(.*)$/1434/p' file
B;A;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkownB;WA6X3XN,V200R001C00B005;WA6X1_K,V200R001C00B005;unkown,unkown
$ sed -n 's/005/103/g;p' file
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B103;WA6X1_K,V200R001C00B103;unkown,unkown
|
上面第一个多了一个分号,修改一下。
$ sed -n 's/^(...;)(.*)(;[A-B];)(.*)$/1232/p' file
B;A;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown;B;WA6X3XN,V200R001C00B103;WA6X35K,V200R001C00B103;unkown,unkown