私はいくつかのコードを変換するためのスクリプトを書いています。適切な変換を実行するsedコマンドがありますが、-nコマンドを使用して、パターンスペースの自動印刷を防止し、二重印刷を抑制する必要があります。しかし、これにより、出力したい他の行を印刷できなくなります。これは私が使用しているスクリプトです。
sed -i -r 's/^[ ]*Class[(]"(I((.([A-Za-z]+)))+)"[ ]*,[ ]*(I((.[A-z]+)+)),[ ]*\{/ class \4 extends \5 { /p
/^[ ]*Class[(]"(I((.([A-Za-z]+)))+)"[ ]*,/ {
N
s/ *\n/ /
s/^[ ]*Class[(]"(I((.([A-Za-z]+)))+)"[ ]*,[ ]*(I((.[A-z]+)+)),[ ]*\{*/ class \4 extends \5 { \
/p
}
'
テスト入力ファイルはここにあります: https ://www.dropbox.com/s/h9vly1hwtqtl8te/TestText.txtスクリプトに-nスイッチがある場合とない場合の2つの異なる結果はここにあります:https:/ /www.dropbox.com/s/f0g8horafwial1x/TestText.txt.ts_result1.txtおよびここ:https ://www.dropbox.com/s/ekualxj7foapgml/TestText.txt.ts_result2.txtここ で目的の結果が見つかります:https://www.dropbox.com/s/3510oh899fh0ji2/TestText.txt.ts_resultdesired.txt
望ましい結果を得ることができますか?
$ sed --versionGNUsedバージョン4.2.1を実行しています