Я использую sed
в Linux, пытаясь сопоставить строки данных, имеющие три поля, разделенные табуляцией (но разделение может быть любым пробелом), как в:
12.3 0a 1b
15.5 0v 1h
17.7 5k 3c
; сейчас я использую это:
sed -n 's/^\([^[:blank:]]*\)[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*\([^[:blank:]]*\)/\1\t\3\t\2/p' mydata.txt
... так что я могу извлекать и манипулировать (в примере, просто инверсией позиции) отдельных полей через \1
, \2
, \3
.
Есть ли лучший способ указать это?
Ура!