Как использовать 3-ю переменную в Bash для цикла?

Действительно, Geany имеет возможность вставить альтернативное пространство. Вы можете найти опцию в меню «Вставить» и / или вы можете установить для него keyBlidng (внутри секции клавиатуры вставки). По умолчанию для подключения ключей не должно быть набора ключей.

0
20.03.2019, 14:25
2 ответа

Что-то вроде поможет вам

for file in aprilPlate.txt  mayPlate.txt  junePlate.txt  julyPlate.txt  augustPlate.txt;
do
for z in A B; 
  do for i in 3 4 5 13 14 15; 
    do grep $z$i $file | 
       awk -F "\t" '{print $3 "\t" $5}' | 
       sed -e 's/A[3-5]/SWC/g;s/A[1][0-9]/SWD/g;s/B[3-5]/TZC/g;s/B[1][0-9]/TZD/g;' >> stone.txt; 
  done;
done
<snip>
done
0
28.01.2020, 04:57

Не уверен, что именно вы пытаетесь сделать, поскольку у вас нет примеров ввода или вывода, но следующее должно работать.

#!/bin/bash
awksrc='BEGIN{FS=OFS="\t"}
{ gsub(/A[345]|E[89]|E10/, "SWC");
  gsub(/A1[0-9]|E1[1-9]|E20/, "SWD");
  gsub(/B[345]|F[89]|F10/, "TZC");
  gsub(/B1[0-9]|F1[1-9]|F20/, "TZD");
}
/SW[CD]{print $3, $5 >"stone.txt"}
/TZ[CD]{print $3, $5 >"suy.txt"}'
for file in aprilPlate.txt mayPlate.txt junePlate.txt julyPlate.txt ...
do
    awk "$awkscr" $file >/dev/null
    paste -d'\t' stone.txt suy.txt >> ${file%.txt}.data.txt
done

$ {file% .txt} получает базовое имя без расширения, чтобы можно было добавить расширение .data.txt .

Это сокращает количество циклов оболочки до одного и обрабатывает каждый файл один раз. Вывод сценария awk не нужен, поскольку файлы записываются внутри него.

Опять же, без ввода примеров трудно сказать, подходит ли это для ваших целей.

0
28.01.2020, 04:57

Теги

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