Wpis z mikrobloga

#komputery #bash #shell
#programowanie

Nie pisze w shellu jednak muszę wyciągnąć za pomocą Shella wartość z pliku csv. Plik csv zawiera kilkadziesiąt wierszy i kilka kolumn. Muszę wyciągnąć jedną wartość z pewnej kolumny a następne użyć ją jako argument przy odpalaniu skryptu pythonowego. Niestety moja zmienna $periodvar jest pusta. Totalnie nie znam się na shellu a nie wiem co robię źle.

INPUT=data.cvs
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read code pack size channel period year
do
echo -e $period &>> $log_file
period_var = #period
done < $INPUT
IFS=$OLDIFS

spark_submit $path/#filename $period_var &>> #load_log
  • 7
via Wykop Mobilny (Android)
  • 0
@PiotrokeJ: nie dział, bo czytasz dopóki read się nie zfailuje więc wyczyści zmienną ¯\_(ツ)_/¯

np: https://replit.com/@bartoszek/PiotrekJ#main.sh
Zamiast loop po readzie lepiej zrobić mapfile i mieć całego csv w tablicach:

mapfile -d, -t headers < <(head -1 "$input")
local i=1
for column in "${headers[@]}"; do
mapfile -t $column < <(tail +2 $input|cut -d, -f$((i++)))
done