Как зациклить папки в каталоге и взять ввод в список, а затем распечатать

У меня есть каталоги с именами от 3 до 8. В каждом из них есть файл с именем OUTCAR. Мне нужно извлечь из этого файла число следующим образом:

grep Elapsed OUTCAR|egrep -o "[0-9]+\.[0-9]+"

Рассматриваемые строки выглядят так:

Elapsed time (sec): 45123.137

Итак, в конце я хочу напечатать два столбца как имя каталога и вывод egrep, например:

3 80650.077
..
8 42757.057

Например, когда я захожу в папку 3 с grep Elapsed OUTCAR|egrep -o "[0-9]+\.[0-9]+", я получаю 80650.077 Большое спасибо за помощь!

1
задан 4 August 2019 в 17:36

1 ответ

С grep и sed:

grep -oP 'Elapsed time \(sec\):\K.*' {3..8}/OUTCAR | sed 's_/OUTCAR:__'

Это использует расширение фигурной скобки {3..8}/OUTCAR создать этот список аргументов grep процесс:

3/OUTCAR 4/OUTCAR 5/OUTCAR …

grep поиски эти файлы для согласующих отрезков длинной линии и выводов только часть после двоеточия с путем файла прямого доступа и именем. sed удаляет нежелательную часть имени файла из каждой строки, оставляя просто имя каталога и соответствие (который уже содержит пространство).

1
ответ дан 7 December 2019 в 14:59

Другие вопросы по тегам:

Похожие вопросы: