2012-02-29 3 views
0

を操作するには、私のワンライナーでここSEDコンテキスト

BEGIN first 
labas 
END 
BEGIN second 
iki 
END 

sedコンテキストについて私は誤解しますか? {$d,1d;p}一致する入力の最初と最後の行を削除してはいけませんか?

答えて

1

いいえ、ファイルの最初または最後の行である一致する入力の行を削除します。 queryの最初の2行を削除すると、最初の行が "BEGIN"になります。

1

これはあなたのために働くかもしれない:

sed -n '/BEGIN/,/END/{//!p}' file 
labas 
iki 
+0

はい確かにそれは動作しますが、私のバージョンが...おかげでない理由を説明する助けにはなりません。なぜ私に指示を与えることができますか?これらの2つのスラッシュは、中括弧内の文脈に対して正確に何をしますか? –

+1

あなたのバージョンは動作しますが、 '/ BEGIN /、/ END /'の範囲がファイルの最初と最後の行の間にあるときだけです。 '//'は最後に一致するregexp(この場合は '/ BEGIN /'と '/ END /')の省略形です。これらの条件では、印刷されませんが、その間の行に印刷されます。 – potong

関連する問題