문자열의 base64에“\ n”이 포함 된 이유는 무엇입니까? “apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407” | base64 YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw Nw== 출력은

$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==

출력은 이전에 리턴 값을 갖습니다 Nw==. Linux에서 base64를 생성하는 올바른 방법은 무엇입니까?



답변

시험:

echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64 -w 0

보낸 사람 man base64:

-w, 문자 --wrap=COLS
뒤에 인코딩 된 줄 바꿈 COLS(기본값 76). 사용하여 0줄 바꿈을 비활성화 할 수 있습니다.


답변

-w옵션을 지원하는 시스템에 대한 Kamil의 대답보다 열등 base64하지만, 사용할 수없는 경우 (예 : Alpine Linux, Arch Linux initramfs후크 등) base64의 출력을 수동으로 처리 할 수 ​​있습니다.

base64 some_file.txt | tr -d \\n

이것은 무차별 접근 방식입니다. 프로그램을 협력하는 대신 trstdout의 모든 줄 바꿈을 무차별 적으로 제거 하는 데 사용 하고 있습니다.