こんにちは。ここに私がファイルから置き換えようとしている内容の一部があります。
#DRECONTENT
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 CA0B0334 /9zFhSLWksoWG8ZgYQDup4jkWkSeGO/MFz5kyMk3JcXqXHHeAjVyr049/QJWE5prYcIK01x6z83C4M2GC7h/PN2k7ZwtkkpOLG3N3/RdBFHOsluLwIoS2HV1pqHL5pZ+wER/NQ==
Skip to main content (Press Enter).
次のように
#DRECONTENT
Skip
これを行うには、次のコマンドを使用します。
sed -e 's/#DRECONTENT\n.*\nSkip/#DRECONTENT/g' post.idx
しかしそれはそれを置き換えません。どんなアイデアがありますか?
答え1
このsed
ユーティリティは行を読み込みます。これは、改行文字が行を区切るために使用され、削除されるため、入力で改行文字を一致させることができないことを意味します。
しかし、次のようにすることができます。
sed '/^#DRECONTENT$/ { N;N; s/\(\n\).*/\1Skip/; }' file
これは入力のすべての行をそのまま出力しますが、#DRECONTENT
正しい行が見つかると、次の2行が入力バッファに追加されます。改行文字を区切り文字として使用(これはすべてがN
行うことです。)次に、最初に挿入された改行文字の後のすべての内容を単語に置き換えますSkip
。
結果は、#DRECONTENT
後ろの最初の行を削除し、次の行を単語に置き換えることですSkip
。他のすべての行は変更されません。
標準は、sed
コマンドの置き換え部分に改行文字を使用して挿入することはできません。一致する改行文字をキャプチャし、逆参照を使用して再挿入してこの問題を解決しました。\n
s