awkрешение:
Образец testfile
содержимого:
datname | size ---- template1 | 6314 kB template0 | 6201 kB postgres | 7938 kB misago | 6370 kB
datname | size ---- template1 | 3000 kB template0 | 3001 kB postgres | 3002 kB misago | 6370 kB
datname | size ---- template1 | 4014 kB template0 | 4001 kB postgres | 4002 kB misago | 6370 kB
awk -F' *\\| *' '{ for(i=3;i<=5;i++)
printf "%s%s",substr($i,1,index($i," ")-1),(i==5? ORS:OFS) }' OFS=',' testfile
Выход:
6314,6201,7938
3000,3001,3002
4014,4001,4002
----------
В случае, если файл имеет фиксированный формат (в полях template
не будет пробелов)-используйте простойметод вырезания:
cut -d' ' --output-delimiter=',' -f7,11,15 <testfile