변수에서 \n을 제거하고 싶습니다. "tr -d 사용"이라는 답변을 많이 찾았지만 tr -d
효과가 없었습니다.
echo "$test" | od -c
0000000 4 4 2 5 2 \n
0000006
그런 다음 사용합니다.tr -d
test2=$(echo $test | tr -d '\n')
하지만 아무것도 변하지 않았어
echo "$test2" | od -c
0000000 4 4 2 5 2 \n
0000006
답변1
를 사용하면 예상대로 (예: 개행 문자) tr -d '\n'
가 제거됩니다 . \n
그러나 echo
명령을 사용하여 이를 확인하고 있습니다. Echo
명령 자체는 입력 문자열 끝에 개행 문자를 넣으므로 예상되는 출력이 표시되지 않습니다.
변수를 확인하려면 다음 명령 세트를 사용하십시오.
test2=$(echo "$test" | tr -d '\n')
printf "%s" $test2 | od -c
echo -n $test2 | od -c
스크립트 출력:
0000000 h e l l o
0000005
0000000 h e l l o
0000005
참고: echo -n: echo 매뉴얼 페이지에서: -n은 후행 줄 바꿈을 출력하지 않습니다. printf: 끝에 \n을 추가하지 않습니다.
답변2
echo
\n
기본값은 추가입니다. -n
생략하는 데 사용됨
[6]root@lab7:~> echo 'lol' |od -c
0000000 l o l \n
0000004
[6]root@lab7:~> echo -n 'lol' |od -c
0000000 l o l
0000003