Grepコマンドに改行文字を追加する

Grepコマンドに改行文字を追加する

改行をどのように追加できますか?カテゴリを表示し、改行、OpenFinカテゴリChrome、別の改行、およびmemoryInfo

これが私が今まで持っているものです:

cat LoginExInternal.txt | grep OpenFin >> LoginExcInternal.txt | echo $'\r' 
&& cat LoginExInternal.txt | grep Chrome >> LoginExcInternal.txt | echo $'\r' 
&& cat MemoryUnderThreshold.txt | grep memoryInfo:jsHeapSizeLimit:1 >> LoginExcInternal.txt | echo $'\r'

しかし、私はそれを新しい行に入れることができないようです。うまくecho $'\r'いかないようです。正しく機能するように修正する方法を教えてください。

答え1

catwith を使用する必要はなく、grepコマンドをグループ化してリダイレクトを一度だけ入れることができます。

{
  grep OpenFin < LoginExInternal.txt && echo 
  grep Chrome < LoginExInternal.txt && echo
  grep memoryInfo:jsHeapSizeLimit:1 < MemoryUnderThreshold.txt && echo
} >> LoginExcInternal.txt

また、Join all コマンドを使用している場合、&&grep が失敗すると次のコマンドは停止し、echo残りのコマンドもgrep実行されません。これはあなたが望むものかもしれないし、そうでないかもしれません。上記のように使用すると、どの場合でもすべてのsが実行されgrep && echoますgrepが、一致するものがある場合にのみ追加の改行文字を印刷しますgrep

$'\r'また、cygwinで改行がどのように処理されるのか、つまりキャリッジリターンを明示的に印刷する必要があるのか​​わかりません。

答え2

これはうまくいくようです。これを行うより簡単な方法があるかどうかはわかりません。

grep OpenFin LoginExInternal.txt >> LoginExcInternal.txt && 
echo $'\r' >> LoginExcInternal.txt && 
grep Chrome LoginExInternal.txt >> LoginExcInternal.txt &&
echo $'\r' >> LoginExcInternal.txt &&
grep MemoryUnderThreshold.txt memoryInfo:jsHeapSizeLimit:1 >> LoginExcInternal.txt

関連情報