どのようにして、ダイナミックなZenity Radiolistでは、1つの選択だけを判断しますか?

StackOverflow https://stackoverflow.com//questions/23062310

  •  26-12-2019
  •  | 
  •  

質問

これは私が現時点で持っているコードです - ファイル拡張子を持つすべてのファイルが.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'
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top