0
基礎知識:我有一個.crt文件(認證authoritie文件),他是由許多領域,但在恢復這個問題的一條線,我有這樣的:分析字符串(.CRT文件)
Certificate:
...(alot of stuff before)...
Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala,
OU=FreeSoft, CN=www.freesoft.org/[email protected]
Subject Public Key Info:
...(alot of stuff after)
我需要解析的文件來填充.csv文件,我有做過,我需要幫助,我需要獲得該領域的問題:
CN=www.fresoft.org
但是當我得到這樣的CN =的。 ..(值而不是...)與很多斜槓我得到一個錯誤,像原始字符串解析:
CN=foo/bar/the/hell/emailAddress=blablabla
,我只需要:
foo/bar/the/hell
,有那麼一會兒我得到的是,在正確的列,但是當我不具備EMAILADDRESS有些事情無法在我的分析,然後我在CN得到.csv文件列中的信息錯誤,而不是
|CN|
foo/bar/the/hell
我得到:
|CN|
OU=FreeSoft, foo/bar/the/hell.
我有這樣的代碼做CN解析:
#!/bin/bash
subject_line=$(echo $cert | grep -o "Subject:.*Subject Public Key Info")
cn=$(echo $subject_line | grep -o "CN=.*")
if [ $(echo $cn | grep -c ".*email.*") -gt 0 ]; then
end_cn=$(echo $cn | grep -b -o emailAddress)
end_cn_idx=$(echo $end_cn | grep -o .*:)
final_end_cn=${end_cn_idx:0:-1}
common_name=${cn:3:$final_end_cn-4}
echo $common_name
else
end_cn=$(echo $cn | grep -b -o "Subject Public Key Info")
end_cn_idx=$(echo $end_cn | grep -o .*:)
final_end_cn=${end_cn_idx:0:-1}
common_name=${cn:3:$final_end_cn-5}
echo $common_name
fi
但這不工作,如果我沒有一個電子郵件地址後CN =右? – PythonNewbie
是的。如果該部分是可選的,則必須先將其刪除。我更新了我的答案以反映這一點。 –
嗨,很抱歉,可以在電子郵件上創建一個數組,例如: 如果在CN = blabla/bla存在[「emailAddress =」,「OU =」,「CT =」等]之後,則僅解析直到電子郵件或Ou或CT等。 以某種方式,不管在CN = blablabla/blabla之後會出現什麼......解析總是正確的,如: 我給他CN = blablabla/bla /OU=YEs/[email protected] 我只能得到: blablablabla/BLA 或者如果我givem他CN = blablabla/BLA/CT = URtest/OU = YES/EMAILADDRESS =你 我會得到:對進口.CRT文件 blablablabla/BLA – PythonNewbie