どのようにして、ダイナミックなZenity Radiolistでは、1つの選択だけを判断しますか?
質問
これは私が現時点で持っているコードです - ファイル拡張子を持つすべてのファイルが.sv
を持ち、それらをzenity
Radiolistにリストしますが、どれでも選択されていません。もちろん、awk '{print "FALSE\n"$0}'
をawk '{print "TRUE\n"$0}'
に変更した場合、それらはすべて選択されます。
test_name=$(
find ../tests/ -name '*.sv' |
awk '{print "FALSE\n"$0}' |
cut -d "/" -f3 |
cut -d "." -f1 |
zenity --list \
--radiolist \
--title "Select test" \
--text "Tests..." \
--column "Box" \
--column "Files"
) #select test via zenity
.
最初のアイテムを選択する方法、そして残りはないのですか?この質問/回答は、それはかなり多くのコードを必要とするでしょう。これを達成するよりエレガントな方法はありますか?
解決
処理対象の最初の行である場合は、awk
コマンドを "true"を印刷することができます。cut
を使用してbasename
コマンドを削除することもできます。
test_name=$(
find ../tests/ -name '*.sv' -exec basename {} .sv \; |
awk 'NR==1{print "TRUE\n"$0} NR>1{print "FALSE\n"$0}' |
zenity --list \
--radiolist \
--title "Select test" \
--text "Tests..." \
--column "Box" \
--column "Files"
) #select test via zenity
.
`awk:
の代わりにsed
を使用することもできます。
sed -e '1iTRUE' -e '1!iFALSE'
. 所属していません StackOverflow