Рейтинг:0

bash-скрипт: почему тест проверяет больше, чем точные совпадения?

флаг au
j0h

Я пытаюсь сделать HAL 9000. У меня есть файл, который содержит "диалог" из фильма, и список слов, в котором есть слова в EEPROM, в соответствующих ячейках памяти, и микросхемы, в которых слова находятся в памяти. Я написал bash-скрипт, который читает диалог фильма и должен выводить адреса памяти и чипы. Кажется, это работает, когда слова длиннее одной буквы.Когда слова состоят из 1 буквы (например: i, a), кажется, что выводятся все экземпляры, в которых буква встречается в слове. Баш-скрипт:

#!/бин/баш
#Чтение диалога получает слово в строке, затем находит место в памяти и микросхему, на которой оно находится
#rec_column2 — адрес в чипе для слова 
#cs=Выбор чипа, значение rec_column3
#wordlist — это библиотека xlsx, преобразованная с помощью: for i in *.xlsx; сделать libreoffice --headless --convert-to csv "$i" ; сделано
#затем введите все строчные буквы, потому что я не знаю, как сравнивать значения, которые отличаются только регистром
#используемая команда: tr '[:upper:]' '[:lower:]' < input.csv > wordlist.csv
ввод = "диалог"
в то время как IFS= чтение строки -r
делать

в то время как IFS="," читать -r rec_column1 rec_column2 rec_column3 
делать
если тест "$line" = "$rec_column1"
    тогда
           echo "// "$line", "$rec_column1" :: "$rec_column2", "$rec_column3
           
           #echo "digitalWrite($rec_column3,LOW);"
           #echo "SPI.transfer($rec_column2);"
           #echo "digitalWrite($rec_column3,HIGH);"
           #echo "задержка(850);"     
фи

сделано < список слов.csv

сделано < $ ввод

[слова, которых нет в библиотеке, не имеют вывода1

Список слов с ячейками памяти здесь. Диалоговое окно для HAL 9000 здесь. Итак, опять же, в случае, если слово состоит из более чем одной буквы, сценарий, кажется, работает. почему он проверяет отдельные буквы на каждое слово, содержащее эту букву? как мне этого не делать? вывод

j0h avatar
флаг au
j0h
так странно, это было опубликовано на моем компьютере, и я видел, что это легитимно. теперь я придумал решение, и сообщение не работает.
muru avatar
флаг us
Пожалуйста, не публикуйте скриншоты текста. Скопируйте текст сюда и используйте форматирование кода.
j0h avatar
флаг au
j0h
@muru, есть ли режим сравнения текста для кодирования? Я пытаюсь показать сравнение ввода с выводом. Я думал, что разделение их будет более запутанным.
muru avatar
флаг us
Обычный кодовый блок подойдет, просто держите их в двух отдельных кодовых блоках.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.