在unix中提取和截断字符

时间:2014-09-16 01:00:15

标签: awk extract

我在awk脚本中使用-cut -c12-16命令,但它不起作用或者可能是我写得不正确。 12到16之间的字符是可变的,我想将它们从以999999开头的文件中取出。

2 个答案:

答案 0 :(得分:3)

使用awk

$ awk '/^YYYYYY/ { print substr($0,1,12) substr($0,17); next }1' file
YYYYYY9999990519

更新

$ cat file
YYYYYY651006178045E46178D
YYYYYY6510617ESTN5258534
YYYYYY999999621409112ET0
YYYYYY99999949234091EA201

$ awk '/^YYYYYY999999/ { print substr($0,1,12) substr($0,17); next }1' file
YYYYYY651006178045E46178D
YYYYYY6510617ESTN5258534
YYYYYY99999909112ET0
YYYYYY9999994091EA201

答案 1 :(得分:0)

通过GNU awk,

$ echo 'YYYYYY99999920120519' | awk '/^YYYYYY999999/{$0=gensub(/^(.{12}).{4}/,"\\1","g")}1'
YYYYYY9999990519