Сравнение со значением CSV-файла

Динамическая установка не подходит для установки программного обеспечения.

Думаю, вам нужно:

  1. Полная установка ОС на USB.

  2. Сделать USB постоянным . В этом случае вы создаете раздел, где хранятся данные, и передаете флаг (в какой-то ОС)persistentядру в меню GRUB. Или, в зависимости от инструмента, который вы используете для создания USB, у него будет возможность создать постоянство, например YUMI .

2
22.10.2021, 07:01
1 ответ

Хотя я разместил свой ответ в качестве комментария, а комментарии были удалены, давайте попробуем еще раз:

Вы подходите к этому нормально, но его можно улучшить таким образом, что вам не понадобится зависимость от слишком большого количества внешних двоичных файлов. Например, для решения вашей проблемы вы можете использовать awkследующим образом:

awk -F, -vmyvar="ValNeeded" 'NR==2 { if ($4 == myvar) print "match"; else print "No match"}'  file.csv

Если вы хотите сохранить свой код, но немного его переписать, он будет выглядеть так:

#!/bin/bash

varcsv=$(awk -F, 'NR==2 { print $NF }' file.csv)
myvar=ValNeeded
if [[ $varcsv == "$myvar" ]]; then
    echo "true"
else
    echo "false"
fi

$NFполучает последнее поле в записи.

Как уже упоминал Philippos, ваш файл содержит окончания строк MSDOS, также известные как CR/LF. Вы можете проверить их по-разному, используя cat, sed, odи многие другие инструменты, но давайте не будем усложнять и используем catи sedв этом случае:

cat -vEt file.csvилиsed -n l file.csv

Это вернет что-то вроде:

Val1,Val2,Val3,SomeVar^M$
Val1,Val2,Val3,ValNeeded^M$
Val1,Val2,Val3,Ignorevar^M$
$

Чтобы удалить эти ^M$символы вместе, вы можете использовать некоторые утилиты. Например :dos2unix file.csv. Есть и другие способы сделать это из редактора, но это требует больше усилий.

После преобразования файла все должно быть хорошо.

1
22.10.2021, 19:37

Теги

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