awk行赋值处理

有文件如:

/vol/VSM_VM_A1_root/ 972 0 972

51 1 50 2%

/vol/VSM_VM_A1_root_ls/ 972 0 972

51 1 50 2%

/vol/sas_vm_a1/ 9961472 1833235 8128236

/vol/nfs_182_248_53_219/   

204800 295 204504 0%

想处理为:当$1为数字时,将上一行的$1插入前面,如

/vol/VSM_VM_A1_root/ 972 0 972

/vol/VSM_VM_A1_root/ 51 1 50 2%

/vol/VSM_VM_A1_root_ls/ 972 0 972

/vol/VSM_VM_A1_root_ls 51 1 50 2%

/vol/sas_vm_a1/ 9961472 1833235 8128236

/vol/nfs_182_248_53_219/   

/vol/nfs_182_248_53_219/ 204800 295 204504 0%

处理

awk ‘/^[0-9]/{$0=a” ”$0}{a=$1}1’ file

解析:

如果是数字开头的行那就就输出变量a和整行的值,如果是

变量a的值就是最近不是以数字开头的行的第一个字段的值。

后面的action a=$1用的很好。

你可能感兴趣的:(awk)