所以,我必須編寫一個bash腳本來檢查9x9「數獨」解決方案是否有效,但簡化是我不必將它分成3x3,但只需檢查行和列包含任何重複的號碼,有效數字只有1-9 ..Bash simplified sudoku
這是我腦子裏想的,但不能得到它的工作:
#!/bin/bash
error="false"
count=0
#this would be for columns
#for i in 1 2 3 4 5 6 7 8 9
#do
#cat sudoku.txt | awk -F "\t" '{ print $'$i'}' | uniq -c | awk '$1 > 1 { count++ } END { print count }'
#done
#and this would be for rows
for i in 1 2 3 4 5 6 7 8 9
do
cat sudoku.txt | awk '{ print FNR=$'$i'}' | uniq -c |
awk '$1 > 1 { count++ } END { print count }' |
awk ' count > 0 { $error="true" } END { print $i }' |
awk '{ if ($error = "true") print "Wrong data!"; else print "Correct data!"; } '
done
其中'$ hiba'被設置的值是什麼?請不要在您的問題中留下注釋掉的代碼,或者發佈您嘗試過的2種解決方案,並解釋其中的差異。祝你好運。 – shellter
呃,完全忘記改變它,$ hiba應該是$ error>。<然後第二行也應該是error =「false,但是我忘了改變它,並且實際上它不是2個解決方案,但是評論out部分是我試圖確定列是否有重複,其餘部分是相同的,但對於行,顯然沒有,如果他們正常工作:( 編輯:固定它 – user1480354
其中'$ error'被設置?還有awk不要使用'$'字符,除了$ 0, - $ 999 ...'祝你好運。 – shellter