次の文字列を含むサンプル ファイルがあります。'if' と 'endif' の間のすべての文字列を改行を削除して 1 行にまとめる必要があります (\n) サンプルを以下に示します。sed または bash スクリプトを使用して、この出力が必要でした。誰でも私を助けることができますか??
--サンプル文字列
if
ABC
BCD
DEF
endif
if
123
456
789
endif
-- 必要な出力
ifABCBCDDEFendif
if123456789endif
次の文字列を含むサンプル ファイルがあります。'if' と 'endif' の間のすべての文字列を改行を削除して 1 行にまとめる必要があります (\n) サンプルを以下に示します。sed または bash スクリプトを使用して、この出力が必要でした。誰でも私を助けることができますか??
--サンプル文字列
if
ABC
BCD
DEF
endif
if
123
456
789
endif
-- 必要な出力
ifABCBCDDEFendif
if123456789endif
ファイルにif-endif ブロックのみが含まれていると仮定します。
awk '{ printf("%s", $0) } /^endif$/ { printf("\n") }'
変更されてはならないテキストが介在する場合は、もう少し複雑なアプローチが必要です。
awk '/^if$/ { InIf = 1 }
/^endif$/ { InIf = 0 }
{ printf("%s", $0) }
!InIf { printf("\n") }'
ワンライナーでこれを行います
ファイルが file.txt の場合
cat file.txt | tr -d "\n" | sed 's@endif@endif\n@g'
上記の文字列を含むファイル tt1 があるとします。
cat tt1 | sed 's/\n//g' | sed 's/endif/endif\n/g'