동적 zenity radiolist에서 하나의 선택 항목만 TRUE로 표시하려면 어떻게 해야 합니까?
문제
이것은 현재 내가 가지고 있는 코드입니다. 파일 확장자를 가진 모든 파일을 찾습니다. .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
당신은 또한 사용할 수 있습니다 sed
`awk 대신:
sed -e '1iTRUE' -e '1!iFALSE'
제휴하지 않습니다 StackOverflow