El siguiente script une con la línea anterior cualquier línea que no comience con 2 números:
$ awk -v ORS="" '$1~/^[0-9]+$/ && $2~/^[0-9]+$/ && NR>1{printf "\n"}1' file
1234 1234 dei_1/3,dei_2/3,dei_9/0,dei_10/0,dei_8/4
2345 2345 dei_8/9,dei_5/6,dei_4/9
4244 4244 dei_0/9,dei_4/6,dei_4/1
4235 4235 dei_0/9,dei_4/6,dei_4/,dei_9/7,dei_1/3,dei_2/3,dei_9/0
Esto se basa enORS
(separador de registro de salida )que se restablece a una cadena vacía. La nueva línea se agrega si los 2 primeros campos son números (y si no es la primera línea ).
Если все файлы находятся на один уровень ниже внутри i18n, вам не нужен метод find.
Измените команду for на использование:
для ФАЙЛА в i18n/*
Кроме того, при ссылке на переменную должен предшествовать символ $.
Я рекомендую использовать безопасную команду при первом выполнении цикла for, иначе это может нанести большой ущерб. Например, просто перечислите значение, которое он видит для FILE, и покажите команды, которые он будет запускать:
for FILE in i18n/*
do
echo "fizzbuzz $FILE $FILE.properties"
done
Когда вы будете удовлетворены тем, что хотите, уберите эхо.
Если вы хотите, чтобы он проходил по нескольким каталогам, этот ответ не сработает, но я исхожу из исходного вопроса, который выглядит так, как будто это может быть плоский каталог.