sed コマンドを使用して特定のファイルの一部を読み込みます。

sed コマンドを使用して特定のファイルの一部を読み込みます。

文書の内容。

[kafka_properties]
listeners=PLAINTEXT://:KAFKA_CLIENT_PORT
default.replication.factor=2
ssl.client.auth=required
ssl.cipher.suites=["TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
            "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",]
ssl.enabled.protocols=TLSV1.2
ssl.secure.random.implem=SHA1PRNG
security.inter.broker.protocol=PLAINTEXT
security.protocol=SSL
ssl.endpoint.identification.algorithm=https


[kafka_ports]
KAFKA_CLIENT_PORT=9082

[zookeeper_properties]
clientPort=ZK_CLIENT_PORT
syncLimit=2
initLimit=5
tickTime=2000
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
admin.serverPort=ZK_SERVER_ADMIN_PORT

[kafka_properties]たとえば、次のように各セクションの値を読み取ろうとします[kafka_ports]

cat file.txt | sed -n '0,/kafka_properties/d;/\[/,$d;/^$/d;p'

この値を別のファイルに書き込みます。パラメータを追加しないと正常に動作します。

ssl.cipher.suites=["TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
            "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",] 

ただし、sedssl.cipher.suites=にパラメータを追加すると、期待file.txtどおりに機能しませんでした。私はどこで間違っていますか?

ベストアンサー1

[行の先頭でのみ一致します^

sed -n '0,/kafka_properties/d;/^\[/,$d;/^$/d;p' file.txt

おすすめ記事