Используйте команды awk или sed для удаления букв и скобок из строк файла - PullRequest
0 голосов
/ 30 мая 2019

У меня есть входной файл, как показано ниже,

group_velocity: [     0.0000000      0.0000000      0.0000000 ]
group_velocity: [     6.8213667      5.2673206      0.0002496 ]
group_velocity: [    19.0751734     29.0686833      0.0006979 ]

Теперь я хочу использовать команду awk / sed, чтобы выходной файл выглядел как:

   0.0000000      0.0000000      0.0000000 
   6.8213667      5.2673206      0.0002496 
   19.0751734     29.0686833     0.0006979

Любая помощь будет оценена.

Ответы [ 4 ]

1 голос
/ 31 мая 2019
$ tr -dc '0-9. \n' < file
      0.0000000      0.0000000      0.0000000
      6.8213667      5.2673206      0.0002496
     19.0751734     29.0686833      0.0006979
1 голос
/ 30 мая 2019

это работает:

echo "group_velocity: [     0.0000000      0.0000000      0.0000000 ]
group_velocity: [     6.8213667      5.2673206      0.0002496 ]
group_velocity: [    19.0751734     29.0686833      0.0006979 ]" | awk '{print $3, $4, $5}'

Привет.

1 голос
/ 31 мая 2019

Если данные все время находятся в одном и том же формате, это должно сделать:

awk '{print $3,$4,$5}' file
0.0000000 0.0000000 0.0000000
6.8213667 5.2673206 0.0002496
19.0751734 29.0686833 0.0006979

Если форматирование важно:

awk '{print $3,$4,$5}' OFS="\t" file
0.0000000       0.0000000       0.0000000
6.8213667       5.2673206       0.0002496
19.0751734      29.0686833      0.0006979
0 голосов
/ 30 мая 2019
sed  's/^.*\[\|\].*//g' input_file

Это удаляет все от начала до [ и ] до конца.

Или с использованием обратных ссылок:

 sed 's/.*\[\([^]]*\)\].*/\1/g' input_file

Это позволит извлечь текст между двумя [ и ].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...