- 论坛徽章:
- 0
|
把上面sub换成gsub就表示在满足条件得域里面替换所有的字符。
有一文本:
0001|20081223efskjfdj|EREADFASDLKJCV
0002|20081208djfksdaa|JDKFJALSDJFsddf
0003|20081208efskjfdj|EREADFASDLKJCV
0004|20081211djfksdaa1234|JDKFJALSDJFsddf
... ...
以'|'为分隔, 现要将第二个域字母前的数字去掉,其他地方都不变, 输出为:
0001|efskjfdj|EREADFASDLKJCV
0002|djfksdaa|JDKFJALSDJFsddf
0003|efskjfdj|EREADFASDLKJCV
0004|djfksdaa1234|JDKFJALSDJFsddf
... ...
解法:
awk -F '|' 'BEGIN{ OFS="|" } {sub(/[0-9]+/,"",$2);print $0}' data_file
为什么 awk -F '|' 'BEGIN{ OFS="|" } {sub(/[0-9]{8,}/,"",$2);print $0}' data_file
awk -F '|' 'BEGIN{ OFS="|" } {sub(/[0-9]*/,"",$2);print $0}' data_file
都出不了这结果 |
|