# 顯示第xx行的第yy列的一個字符
sed -n 'xx,xxp' file | awk '{print substr($0,yy,1);}'
# 修改第xx行的第yy列的一個字符Chr,並保存為新文件
awk -F "" 'BEGIN { OFS="" }{if(NR == xx) for(i=yy;i<=yy;i++) {$i="Chr";} print }' file > newfile
file內容:
123abc456aababc789abcqweabcrtyabc
替換第9個字符到第19個字符之間的abc為xyz:
awk -F "" 'BEGIN { OFS="" } {for(i=9;i<=19;i++) if($i=="a" && $(i+1)=="b" && $(i+2)=="c"){$i="x";$(i+1)="y";$(i+2)="z"}print }' file
首先通過設定FS,將每個字符看成一個域然后通過for循環進行遍歷,經過判斷找出abc這樣連續的三個字符后進行重新賦值,最后輸出,記住,如果用sub、gsub替換,請分析好替換的內容.
REF:
http://blog.chinaunix.net/uid-25696473-id-3246669.html