GNU/Linux >> Linux の 問題 >  >> Linux

「?」で始まる行を無視してファイルを出力する方法は?

svn status --show-updatesを実行します それから私はどちらかをしたい

  • Q1:
    ?で始まる行を無視します(表示しません)。
  • Q2:
    *で始まる行のみを表示します *が発生する前にスペースがほとんどないことに注意してください。つまり、* 行の最初の文字ではありません。

どうすればそれができますか?

承認された回答:

これらの条件は正規表現を使用して表現し、grepを使用できます。 それらに基づいて結果をフィルタリングします。

最初のものは^?です 。カラットは、行の先頭を表す特殊文字です。式が行の先頭と一致し、直後に?が続くようにします。 。

2つ目は^ *\*です 。 * は、前の文字を修飾する特殊文字です。これは、前の文字が0回以上出現する可能性があることを意味します。 *以降 は特殊文字です。探している文字はエスケープする必要があるため、\* 。そのため、式は行の先頭に一致し、その後に0個以上のスペースが続き、その後にアスタリスクが続きます。

最初の条件として、-vを使用します grepのオプション 結果を否定します。

最後に、

svn status --show-updates | grep -v '^?'

または

svn status --show-updates | grep '^ *\*'

正規表現は非常に強力であるため、多くのUnixツールで使用できます。それらは学ぶ価値があります。 regular-expressions.infoにすばらしいチュートリアルがあります。


Linux
  1. Iconvに入力ファイルを変換された出力に置き換える方法は?

  2. バックスラッシュ文字で終わるすべての行を組み合わせるにはどうすればよいですか?

  3. Sedを使用してテキストファイルから複数のランダム行を削除する方法は?

  1. カラー出力をgrepする方法

  2. LinuxでCでファイルを書く方法は?

  3. 出力をファイルに追加する方法は?

  1. Wget で保存せずにファイルを要求するにはどうすればよいですか?

  2. system() の出力をファイルにリダイレクトする方法は?

  3. sed で \r 文字を削除する方法