sed正則經典案例(二)
阿新 • • 發佈:2017-05-31
sed正則
sed正則經典案例(二)
###修改登記信息格式
已知文本內容如下:
[[email protected] oldboy]# cat 2.txt 張三--1995/04/12--186-1233-4324--5004132131231231231 李四--1993/05/20--175-4323-2343--4423432423413132133 王五--1989/12/21--150-3123-3123--4324234121231231242
請替換成如下結果:
張三 19950412 18612334324 5004132131231231231 李四 19930520 17543232343 4423432423413132133 王五 19891221 15031233123 4324234121231231242
解答:
sed+替換
sed -nr ‘1,3s#--#\n#g;s#[/-]##gp‘ 2.txt ===[]或 sed -r ‘s#-{2}#\n#g;s#[/-]##g‘ 2.txt sed -nr ‘1,3s#-{2}#\n#g;s#[/-]##gp‘ 2.txt ===[]或 sed -nr ‘1,3s#--#\n#g;s#/|-##gp‘ 2.txt ===‘|‘或 sed -re ‘s#--#\n#g‘ -e ‘1,3s#/|-##g‘ 2.txt ===‘|’或 sed -r ‘s#-{2}# #g;s#/|-##g‘ 2.txt|xargs -n1 不用換成空,直接換成換行符‘\n’
sed+反向引用
sed -r ‘s#(.*)--(.*)/(.*)/(.*)--(.*)-(.*)-(.*)--(.*)#\1\n\2\3\4\n\5\6\7\n\8#‘ lianxi.txt awk切割輸出+sed替換 awk -F"[-]+" ‘{print $1"\n" $2"\n" $3 $4 $5"\n" $6}‘ 2.txt|sed ‘s#/##g‘ awk -F"[-/]+" ‘{print $1"\n" $2$3$4 "\n" $5$6$7"\n" $8}‘ 2.txt awk -F "[-/]+" ‘{print $1,$2$3$4,$5$6$7,$8}‘ 2.txt|xargs -n1 awk -F"--" ‘{for(i=1;i<=NF;i++){gsub(/\/|-/,"",$i);print $i}}‘ 2.txt ===gsub替換函數
sed正則經典案例(二)