`sed -n '/^#n_sns\tn_loc/,/^[^0-9]/ p' $log_file | grep -E '^[0-9]' > $log_file.sns_p_loc` を理解するには?

`sed -n '/^#n_sns\tn_loc/,/^[^0-9]/ p' $log_file | grep -E '^[0-9]' > $log_file.sns_p_loc` を理解するには?

チュートリアルに従っていますが、sedコマンドがあります。

sed -n '/^#n_sns\tn_loc/,/^[^0-9]/ p' $log_file | grep -E '^[0-9]' > $log_file.sns_p_loc

わかりません。誰が説明できますか?それとも何か問題があるのでしょうか?

答え1

これは役に立ちますか?

sed -n '                # run sed but don't print by default
/^#n_sns\tn_loc/,       # from match 1
/^[^0-9]/               # to match 2
 p'                     # print

あなたの特別な質問:

^                       # anchor at begin  of line
[                       # opens a "bracket expression" which normally matches any single character from the list
^                       # a leading ^ makes it match any single character NOT from the list.
0-9                     # character range, only digits 
]                       # close "bracket expression"

これはgrep重複しているようです。対応するジョブ(数字で始まる行印刷)sedは最初に。

関連情報