这是我目前的代码 - 它找到所有文件扩展名为.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
如何选择第一个项目,其余项目不是?我知道这可以通过this问题/答案的建议使用数组来完成,但是它需要更多的代码。是否有更优雅的方式实现这一目标?
答案 0 :(得分:2)
您可以修改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
您也可以使用sed
代替`awk:
sed -e '1iTRUE' -e '1!iFALSE'