Linux에는 각각 1~2개의 base64 코드 블록이 포함된 텍스트 파일이 있습니다. 아래는 파일의 일부와 1개의 base64 청크입니다.
콘텐츠 전송 인코딩: base64
RGVhciBMdWlzLA0KICANCkdvb2QgbW9uaW5nIQ0KT3VyIEJhbmsgYWNjb3VudCBpcyB1bmRlcmdvaW5nIGF1ZGl0IGZvciB0aGUgZmlzY2FsIHllYXIgYXMgcmVxdWlyZWQgYnkgdGhlIGNoaW5hIGZ v cm VpZ24gY3VycmVuY3kgY29udHJvbCBwb2xpY3kgYW5kIHRoZSBhY2NvdW50IHdpbGwgbm90IGJlIGF2YWlsYWJsZSB1bnRpbCB0aGUgQ2hpbmVzZSB0YXggYnVyZWF1cyBhcmUgc 2F0aXN ma WVkIHRoYXQgYWxsIGFwcGxpY2FibGUgdGF4ZXMgaGF2ZSBiZWVuIHBhaWQgdXAuIFBsZWFzZSBob2xkIHBheW1lbnQgc28gaSBjYW4gZnVybmlzaCB5b3Ugd2l0aCBvdXIgcmV2aXNlZCBiY W5 원시5 niGluZm9ybWF0aW9uLiAgDQonCiagDQpCZXN0IHJlZ2FyZHMNCiANCKRhdmlk
------=_Part_143209_644876817.1451544132767--
파일에서 첫 번째 base64를 추출하려면 어떤 명령을 사용할 수 있나요?
내 목표는 출력을 읽을 수 있도록 디코딩하는 것입니다.
파일 디코딩 명령 예:https://superuser.com/a/663397
구문 디코딩 명령 예:https://askubuntu.com/a/178546
코드의 Base64 부분만 추출하는 방법을 모르거나, 두 개의 Base64가 포함된 경우 첫 번째 부분만 추출하는 방법을 모르겠습니다. sed
or 를 사용할 수 있지만 awk
다음을 찾을 것이라고 가정하는 방법을 모르겠습니다.
- 64비트 기반
- ------=_부분_
빈 줄을 다듬으면 Base64가 나오지만 Base64 부분이 2개 있으면 어떻게 될까요? 나는 첫 번째를 원한다.
답변1
귀하의 질문을 모두 완전히 이해했는지는 모르겠지만 일부 내용은 파악하셨고 명령에 입력하려는 텍스트를 다듬는 방법이 필요한 것 같습니다 base64
.
저는 이 부분에 대해 이렇게 답하고 싶습니다.
나는 a) base64 및 b) ------=를 찾을 것이라고 가정합니다.부분
빈 줄을 다듬으세요. Base64가 있는데 Base64가 2개 있으면 첫 번째를 원합니다.
다음을 사용하여 첫 번째 인스턴스부터 base64
첫 번째 인스턴스 이후까지 모든 줄을 인쇄할 수 있습니다.=_Part_
sed
sed -n '/base64/,${p;/=_Part_/q;}' inputfile
설명하다:
-n
각 줄의 인쇄를 비활성화하는 기본 동작입니다.
/base64/,$
base64
첫 번째 인스턴스부터 파일 끝까지 다음 코드 블록을 적용합니다 . ( $
이 문맥에서는 마지막 줄을 의미합니다.)
p
라인을 인쇄한다는 의미입니다.
/=_Part_/
q
줄 에 =_Part_
.
명령 q
이 종료 sed
되어 모든 후속 행이 전혀 처리되지 않습니다.
이 모든 것의 결과는 매우비슷한더 간단한 버전에서는 에서 - 까지 sed -n '/base64/,/=_Part_/p' inputfile
인쇄 하지만 이 간단한 버전은 첫 번째 섹션 이후에 중지하는 대신 여러 섹션을 인쇄합니다.base64
=_Part_