Объедините несколько файлов на основе одинакового идентификатора в цикл - PullRequest
1 голос
/ 29 мая 2020

У меня есть эти файлы в одной папке:

results1_1_2_4
results2_1_2_4
results3_1_2_4
results4_1_2_4
results5_1_2_4

results1_0.001_2_25
results2_0.001_2_25
results3_0.001_2_25
results4_0.001_2_25
results5_0.001_2_25

results1_0.1_3_50
results2_0.1_3_50
results3_0.1_3_50
results4_0.1_3_50
results5_0.1_3_50

Я хотел бы объединить пять файлов results1+results2+results3+results4+results5 для каждой комбинации, например «1_2_4», «0.001_2_25» и «0.1_3_50» ". Таким образом, вывод должен быть:

results_1_2_4
results_0.001_2_25
results_0.1_3_50

Аналогичный вопрос здесь ( несколько файлов cat на основе идентификатора в имени файла ), но я безуспешно пытался:

for f in results*; do cat "$f" >> "results${*_f%%}"; done

1 Ответ

3 голосов
/ 29 мая 2020

Просто небольшая корректировка расширения параметра:

for f in results*; do
  cat "$f" >> "results_<b>${f#*_}</b>"
done
...