cat、grep、awk、およびsedコマンドを組み合わせる方法は?

cat、grep、awk、およびsedコマンドを組み合わせる方法は?

これらのコマンドを個別に入力すると、目的の結果が得られます。

cat /var/log/apt/history.log | grep 'apt install' > installation.txt
grep -v "nvidia" installation.txt > tmpfile && mv tmpfile installation.txt
awk -F"ll " '{print $2}' installation.txt > temp1
sed -n '/--/!p' temp1 > temp2
sed -n '/-f/!p' temp2 > installation.txt

しかし、これをどのように組み合わせるべきかわかりません...

以下は、最初に何が間違っているかを理解するためにNVIDIA検索なしで実行したいくつかのテストです。

cat /var/log/apt/history.log | grep 'apt install' > file | awk -F"ll " '{print $2}' file > temp | sed -n '/--/!p' temp > file | sed -n '/-f/!p' file > installation.txt
cat /var/log/apt/history.log | grep 'apt install' > file | awk -F"ll " '{print $2}' file | awk -F"ll " '{print $2}' file | sed -n '/--/!p' file | sed -n '/-f/!p' file
cat /var/log/apt/history.log | grep 'apt install' > file | awk -F"ll " '{print $2}' file > temp | sed -n '/--/!p' temp > file | sed -n '/-f/!p' file > installation.txt

これらのタスクをどのように組み合わせるのですか?

インストールされたパッケージをエクスポートし、私が作成したスクリプトにその機能を含めたいと思います。githubで見つけることができます

内でこのコマンドを使用する必要があります。package.shスクリプト。

ベストアンサー1

これまでの回答はすべて素晴らしいもので、あなたが望む仕事を扱っています。私の答えは、シェルコマンドの理解(または誤解)に関するものです。

cat /var/log/apt/history.log | grep 'apt install' > file ファイルを読み込んでcat出力できます。必要はgrepなく、ファイル自体を読むことができます。catgrep

> file | awk第二に、ステップにそのようなものがありますgrep。それが何をすべきかわかりません。> file方法」ファイルに直接出力(ターミナルにダンプする代わりに)「しかし| awkスーダンは」出力をキャプチャして次に送信します。awktee2つのことを同時に行うことはできないようです。

おすすめ記事