Я пытаюсь использовать комбинацию awk / sed для печати определенных полей в данном csv. Я сталкиваюсь с проблемой получения awk для распознавания заданных параметров (например, ./printcsv.sh 3 5 - параметры 3 и 5 и пытаюсь распечатать столбцы 3 и 5 csv через awk) в коде.
#! /bin/bash
read -p "What file would you like to print? " file
read -p "What directory is this file located in? " directory
cd $directory
touch readcsv.txt
for (( i = 1; i <= $#; i=i+1 ))
do
cat $file | awk -F "," -v var=${i} 'NR==2 {print $var }' "$directory"/"$file" >> readcsv.txt
done
cat readcsv.txt
rm readcsv.txt
Я подумал или создал временный файл .txt, в который я бы добавил печатные поля, чтобы отследить этот файл .txt для чтения, но у меня возникли проблемы (возможно, из-за недостаток знаний sed) о создании таблицы в файле, так как на выходе это всего два столбца, расположенных один за другим (очень длинный столбец). Кроме того, я не знаю, заключается ли проблема в «for» l oop, которое я создал, или в том, как я пытаюсь расширить переменную «i», но даже если я задаю свои параметры, чтобы сказать 3 и 5, я надеюсь, что $ 1 будет затем преобразован в параметр 3 (следовательно, столбец 3 в CSV), вместо этого он все еще переводится в столбец 1 в команде awk.
Точно так же, как система отсчета, я очень новичок в Bash, все самоучки проводятся через онлайн-курсы, которые могут только так сильно помочь, пока вы не попадете на примеры, не связанные с курсом.