ファイルの内容をエンコードし、1行で表示します。

ファイルの内容をエンコードし、1行で表示します。

出力を別の場所にコピーできるように、base64エンコーディングを使用してキーと証明書ファイルの内容をエコーし​​ようとしています。

このスレッドを見つけました。ファイルの内容をechoコマンドにリダイレクトしますか?ファイルの内容をエコーする方法を示し、エンコードのために改行を維持する方法を見つけます。ただし、追加すると| base64出力が複数行に分割され、2行目を追加しようとするとecho改行文字が空白に置き換えられます。

$ echo "$(cat test.key)" | base64
LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZB
QVNDQ1N3d2dna29BZ0VBQW9JQ0FRRFF4Tkh0aHZvcEp1Z0EKOHBsSUNUUU1pOGMwMzRERlR6Z1E5
ME5tcE5zN2hRczNQZ0QwU2JuSFcyVGxqTS9oM1F1QVE0Q1dqaHRiV1ZUbgpSREcveGxWRFBESVVV
MzB1UHJnK0N6dlhOUkhzQkE9PQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==

$ echo $(echo "$(cat test.key)" | base64)
LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZB QVNDQ1N3d2dna29BZ0VBQW9JQ0FRRFF4Tkh0aHZvcEp1Z0EKOHBsSUNUUU1pOGMwMzRERlR6Z1E5 ME5tcE5zN2hRczNQZ0QwU2JuSFcyVGxqTS9oM1F1QVE0Q1dqaHRiV1ZUbgpSREcveGxWRFBESVVV MzB1UHJnK0N6dlhOUkhzQkE9PQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==

希望の出力は次のとおりです。

LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1N3d2dna29BZ0VBQW9JQ0FRRFF4Tkh0aHZvcEp1Z0EKOHBsSUNUUU1pOGMwMzRERlR6Z1E5ME5tcE5zN2hRczNQZ0QwU2JuSFcyVGxqTS9oM1F1QVE0Q1dqaHRiV1ZUbgpSREcveGxWRFBESVVVMzB1UHJnK0N6dlhOUkhzQkE9PQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==

この結果をどのように取得できますか?

答え1

次のようにbase64の-wオプション(改行)を使用します。

... | base64 -w 0

値が0の場合、改行は無効になります。

答え2

すべてのバージョンのbase64がこのフラグ(OSX)をサポートしているわけではありませんが、以下を-w 0使用してこのオプションと同じ効果を生成できます。-w 0

cat test.key | base64  

出力はgitlab変数などで使用できます。

答え3

前述のように、すべてのBase64バージョンがフラグ-whttps://www.fourmilab.ch/webtools/base64/)。

これは私にとって効果的です。

base64 -e test.key | tr -d '\n\r'

関連情報