Немного сложно понять, что вы на самом деле пытаетесь сделать. Если вы хотите объединить содержимое $sourcelist
и $tools/$2
и выполнить его в Bash, вы можете использовать cat
с этими двумя файлами и передать ssh
следующим образом:
cat "$sourcelist" "$tools/$2" | sshpass -e ssh $usrconn@$ipconn
Это можно легко сделать только с помощью awk
.
awk '($1==1){print $NF>FILENAME"_new"}' anacovis2_{1..2181}_summary_betai_reg.out
Это проверит, был ли первый столбец равен 1 $1==1
, затем напечатает последний столбец $NF
в новый файл с форматом того же FILENAME, но заканчивается на _new
, поэтому выходные файлы будут FILENAME_new
.
Чтобы прочитать все 2181 файл, мы использовали параметр раскрытия фигурной скобки .
Простое решение:
for((i=1;i<2182;i++)); do
file_in="anacovis2_${i}_summary_betai_reg.out"
file_out="awk_output_${i}"
awk '$1==1 { print $NF }' "$file_in" >"$file_out"
done
Более быстрым решением может быть открытие входных и выходных файлов с помощью awk
, чтобы требовался только один awk
процесс вместо 2181...