tr -d 或 sed -e 's/\r//g' 无法从 MINGW32 中的文件中删除 CRLF
Posted
技术标签:
【中文标题】tr -d 或 sed -e \'s/\\r//g\' 无法从 MINGW32 中的文件中删除 CRLF【英文标题】:tr -d or sed -e 's/\r//g' can't remove CRLF from file in MINGW32tr -d 或 sed -e 's/\r//g' 无法从 MINGW32 中的文件中删除 CRLF 【发布时间】:2021-04-26 21:13:18 【问题描述】:我有这个证书文件
-----BEGIN CERTIFICATE REQUEST-----
MIIFIDCCAwgCAQAwIDEeMBwGA1UEAwwVdmF1bHQudmF1bHQtcGVyc28uc3ZjMIIC
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2h1Io+IPgBFYa+L9TFQ3hXDk
dKJFHVBHFx6RaYMDHJe75c/Ozq3zwAwlDlPviTvB96OyuBX9KIBDk5b0QCELYHym
omCSm1GO+Izxgu26aBvrbgycwUml+lXqW8R6reMpEBnaIRgOvPhIsncaR3iQBt8m
yPo/v5ouPCrVGJ5Hehi4ll0vwxI5/ETlJIjnDqBODwWRLvktv4ysHRj/4hyh5Yn0
IalOn9Cxo0w2zVQhFE63n3enz7c=
-----END CERTIFICATE REQUEST-----
我尝试从文件中删除所有 CRLF
这样也试过 tr -d "\n" 和 tr -d "\r" :
cat <<EOF >$TMPDIR/csr.yaml
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: $CSR_NAME
spec:
groups:
— system:authenticated
request: $(cat $TMPDIR/server.csr | base64 | sed -e 's/\r//g')
usages:
— digital signature
— key encipherment
— server auth
EOF
不管我做什么 最终结果文件部分证书内容仍然包含换行符 我怎样才能删除它?
【问题讨论】:
你试过tr -d '\r'
吗?
是的,我还是用换行符写了文本
如果你删除LF
,它只会是一条长线......无论如何,使用base64 -w0
来输出没有换行符。 is still contains the line break How can i remove it ?
与 tr -d '\n'
试试 cat -v file.csr | tr "^M" "\n" | tr -d "\n"
【参考方案1】:
试试:
cat -v file.csr | tr "^M" "\n" | tr -d "\n"
这将输出带有 Windows 文件结尾 (-v) 的文件,然后使用 tr 将文件结尾 (^M) 替换为新行,然后删除新行 (-d)
【讨论】:
如果解决方案有效。请花点时间投票并接受答案。以上是关于tr -d 或 sed -e 's/\r//g' 无法从 MINGW32 中的文件中删除 CRLF的主要内容,如果未能解决你的问题,请参考以下文章