У меня есть файл со следующими записями:
foop07_bar2_20190423152612.zip
foop07_bar1_20190423153115.zip
foop08_bar2_20190423152612.zip
foop08_bar1_20190423153115.zip
, где
foop0* = host
bar* = fp
Я хотел бы прочитать файл и создать 3 переменные, полное имя файла, host и fp (что означает file_path_differentiator).
Я использую read, чтобы взять первую строку и получить всю переменную имени файла, хотя я мог бы затем передать это в awk, чтобы получить следующие две переменные, однако первый метод вставки переменной создает ошибку, а второй дает мне все переменные.
Я хотел бы зациклить каждую строку, так как я хочу использовать эти переменные для ssh к хосту и получить файл
#!/bin/bash
while read -r FILE
do
echo ${FILE}
host=`awk 'BEGIN { FS = "_" } ; { print $1 }'<<<<"$FILE"`
echo ${host}
path=`awk -v var="${FILE}" 'BEGIN { FS = "_" } ; { print $2 }'`
echo ${path}
done <zips_not_received.csv
Ожидаемый результат
foop07_bar2_20190423152612.zip
foop07
bar2
foop07_bar1_20190423153115.zip
foop07
bar1
Фактический результат
foop07_bar2_20190423152612.zip
/ : No such file or directoryfoop07_bar2_20190423152612.zip
bar2 bar1 bar2 bar1