2016-08-29 10 views
2

-sオプションのsedマニュアルを読んでいます。そこには、こう述べています。sedのデフォルト-sオプションはGNU sedで何を意味しますか?

-s --separateは、単一の連続長いストリームとしてコマンドラインで指定されたファイルを検討します。このGNU sed の拡張子は、ユーザがそれらを別々のファイルと見なすことを可能にします:範囲 アドレス( '/ abc /、/ def /'など)は複数のファイルにまたがることができません。 、$は各ファイルの最後の行に を参照し、Rコマンド から呼び出されたファイルは各ファイルの先頭に巻き戻されます。

どのように-sを使用するには、同じ

[[email protected] ~]# cat 1 |sed -s -n '/1/p' 
12345a6789a99999a 
12345a6789a99999b 

[[email protected] ~]# cat 1 |sed  -n '/1/p' 
12345a6789a99999a 
12345a6789a99999b 

1 file is 
cat 1 
12345a6789a99999a 
12345a6789a99999b 

に-sなし-sを追加しますか?

答えて

8

sedに複数のファイルを指定した場合のみ重要です。

あなたが-sフラグを指定しない場合、sedが行動するようにファイルの内容は、単一のストリームに連結されていた場合:

echo "123 
456 
789" > file1 
echo "abc 
def 
ghi" > file2 

# input files are considered a single stream of 6 lines, whose second to fourth are printed 
sed -n '2,4 p' file1 file2 

456 # stream 1, line 2 
789 # stream 1, line 3 
abc # stream 1, line 4 


# there are two distinct streams of 3 lines the 2nd and 3rd of each are printed 
sed -ns '2,4 p' file1 file2 

456 # stream 1, line 2 
789 # stream 1, line 3 
def # stream 2, line 2 
ghi # stream 2, line 3 
+0

ニース例の選択と偉大な説明 –

関連する問題