Генерируйте предложения для ошибок из словаря поиска

Я отвечаю на свой собственный вопрос (с кодом!) и upvoting Keith для его keysym предложения. Однако решение Keith не сохраняет измененный шрифт в файл Xresources, так, чтобы изменение размер было доступно, когда следующее окно открыто, тогда как мое делает:

https://github.com/noah/urxvt-font

3
22.12.2013, 01:01
2 ответа

Я изменил входные файлы на tsv и использовал следующее решение (вдохновленный 1-м ответом)

echo "" > wrong_variables.tmp  
while read line  
do  
    var_template=`echo $line | cut -f2`  
    var_parameter=`echo $line | cut -f3`  

    #TODO order by template and cache grep output  
    grep "${var_template}" templ2.tmp  | cut -f2 > tmpfile  
    var_suggest=`tre-agrep -B "$var_parameter" tmpfile | tr "\n" "$"`  

    echo $line \\t $var_suggest >> wrong_variables.tmp
done < $OUTPUT_RAW
0
27.01.2020, 21:32
  • 1
    я не прочитал Ваши сценарии подробно, но здесь являюсь несколькими примечаниями по преодолению специальных символов. Набор IFS='' и используйте read -r line постараться не пропускать начальный пробел и интерпретировать обратные косые черты. Всегда подстановки переменных двойной кавычки ("$line") сохранять пробел и \[?* неизменный; и используйте printf %s "$line" вместо echo. Но на самом деле можно извлечь разделенные от вкладки поля в оболочке: tmp=${line#*␉}; var_template=${tmp%%␉*}; line=${tmp#*␉}; var_parameter=${tmp%%␉*} где ␉ является вкладкой. Последняя строка в цикле должна быть printf '%s\t%s\n' "$line" "$var_suggest". –  Gilles 'SO- stop being evil' 15.04.2011, 00:04

Как острота с результатом:

for pattern in $(awk '{print $3}' wrong.csv) ; do tre-agrep -B $pattern available.csv | tr "\n" "$"; echo ; done  
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$

лучше читаемый:

for pattern in $(awk '{print $3}' wrong.csv) 
do
  tre-agrep -B $pattern available.csv | tr "\n" "$"
  echo
done  

Что-то как этот?

1
27.01.2020, 21:32
  • 1
    Это не работало, но это вдохновило меня работать он этот путь. Я отправлю решение позже. Я 'd голосую за Ваш ответ, но у меня нет достаточной репутации ;) –  jimkont 14.04.2011, 09:38

Теги

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