수직 막대가 포함된 변수 구문 분석

수직 막대가 포함된 변수 구문 분석

yad기본적으로 yad출력 결과는 파이프 문자 " "로 구분 됩니다 |.

문자열 변수가 있습니다 output. 이를 에코하면 다음 내용이 포함되어 있음을 알 수 있습니다.

/dev/sde|
name0|name1|name2|

모든 수직 막대를 개행 문자로 변경하고 싶습니다.

이것은 작동하지 않습니다. echo "$output" | tr '|' '\n'
이것도 작동하지 않습니다. echo "$output" > /tmp/output; echo $(cut -d'|' -f1 < /tmp/output)
두 시도 모두 개행 만 출력합니다. /tmp/output일단 생성되면 두 개의 빈 줄이 포함되지만 텍스트는 포함되지 않습니다.

답변1

당신의 tr은 괜찮을 것입니다.

탈출을 시도하다"\|"

답변2

마침내 무슨 일이 일어나고 있는지 알아냈습니다. 변수가 올바르게 설정되지 않았습니다. 줄이다:

yad --plug=12345 --tabnum=1 &
yad --plug=12345 --tabnum=2 &
output="$(yad --notebook --key=12345)"
echo "$output"

$output결과가 터미널에 인쇄된 이후로 에코가 발생한 것 같습니다.
그러나 에코를 제거해도 아무런 효과가 없습니다. 그러다가 깨달았어처음 두 명령은 데이터를 출력하는 명령입니다., 세 번째 외부 yad명령이 아닙니다. 첫 번째 yad 명령의 시작 부분으로
이동하면 output="$(빈 변수 문제가 해결됩니다.

또한, man yad내가 원하는 것을 정확히 수행하는 cli 플래그가 있다는 것을 탐색하고 발견했습니다.

--separator='\n'

관련 정보