linux – 使用awk提取密钥的BASH脚本
发布时间:2020-12-13 23:50:54 所属栏目:Linux 来源:网络整理
导读:我正在创建dkim private公钥 openssl genrsa -out dkim1024.key 1024 openssl rsa -in dkim1024.key -out dkim1024.pub -pubout -outform PEM 我有一个使用awk提取密钥文件的bash脚本 KEY = /usr/bin/awk’NR 1 {a [k] = $0} END {for(i = 1; i k; i)print a
我正在创建dkim private&公钥
openssl genrsa -out dkim1024.key 1024 openssl rsa -in dkim1024.key -out dkim1024.pub -pubout -outform PEM 我有一个使用awk提取密钥文件的bash脚本 -----BEGIN PUBLIC KEY----- MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY 8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfasgwYAA0x3roKIYAeHFFrFm9aCS WKpM+na/03akmpewn4cjT4sm9qTHP0q/VM/YtHy3rGkPj+xzOKgO9rzyZo3E1a1O HYu6TIqqzlqtadfafafafdas -----END PUBLIC KEY----- 我需要删除这些行. sh-3.2# echo $KEY MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY 8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfasgwYAA0x3roKIYAeHFFrFm9aCS WKpM+na/03akmpewn4cjT4sm9qTHP0q/VM/YtHy3rGkPj+xzOKgO9rzyZo3E1a1O HYu6TIqqzlqtadfafafafdas 谢谢 解决方法
由于
word splitting,你得到的是空格而不是行.你应该用双引号引用你的变量
echo "$KEY" 这也可以是一种替代解决方案: awk '/-END PUBLIC KEY-/ { p = 0 }; p; /-BEGIN PUBLIC KEY-/ { p = 1 }' file.key 输出: MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY 8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfasgwYAA0x3roKIYAeHFFrFm9aCS WKpM+na/03akmpewn4cjT4sm9qTHP0q/VM/YtHy3rGkPj+xzOKgO9rzyZo3E1a1O HYu6TIqqzlqtadfafafafdas 即使在块之前或之后存在其他行,该解决方案也将起作用. 您也可以使用Bash本身来完成: #!/bin/bash FILE='file.key' ## Or FILE=$1 KEY=() while IFS=$' trn' read -r LINE; do [[ $LINE == *'-END PUBLIC KEY-'* ]] && P=0 (( P )) && KEY+=("$LINE") ## Store every line as an array element. [[ $LINE == *'-BEGIN PUBLIC KEY-'* ]] && P=1 done < "$FILE" echo -------------------- printf '%sn' "${KEY[@]}" echo -------------------- IFS= eval 'MERGED_KEY="${KEY[*]}"' ## Merge key without spaces. echo "$MERGED_KEY" 输出: -------------------- MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY 8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfasgwYAA0x3roKIYAeHFFrFm9aCS WKpM+na/03akmpewn4cjT4sm9qTHP0q/VM/YtHy3rGkPj+xzOKgO9rzyZo3E1a1O HYu6TIqqzlqtadfafafafdas -------------------- MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfasgwYAA0x3roKIYAeHFFrFm9aCSWKpM+na/03akmpewn4cjT4sm9qTHP0q/VM/YtHy3rGkPj+xzOKgO9rzyZo3E1a1OHYu6TIqqzlqtadfafafafdas (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |