Заполнить массив комбинацией sed / echo

Это будет работать даже без цикла для всех имен файлов, начинающихся с file:

perl -pe 's/\n/ /g' file*

Для таких операций я предпочитаю perl. Имеет тот же синтаксис, что и sed , является переносимым и не имеет всех этих странных параметров sed . Вы также можете применить переключатель -i к perl (например, sed), чтобы внести изменения на месте: perl -i.old -pe .... (старый файл будет скопирован с расширением .old -Вы можете просто использовать -i и файл резервной копии не будет сохранен)

Если вы предпочитаете, вы можете использовать команду find следующим образом:

$ find . -type f -name 'file*' -exec bash -c 'tr "\n" " " <$0 >$0.new' {} \;
1
26.08.2016, 13:53
1 ответ

Если бы это был я, я бы загрузил массив следующим образом:

#!/bin/bash

string="file_20160825_namegoeson"

myarray[0]="${string:5:4}"
myarray[1]="${string:9:2}"
myarray[2]="${string:11:2}"

echo "${myarray[0]}"
echo "${myarray[1]}"
echo "${myarray[2]}"
0
28.01.2020, 01:12

Теги

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