これらのコマンドを個別に入力すると、目的の結果が得られます。
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
なく、ファイル自体を読むことができます。cat
grep
> file | awk
第二に、ステップにそのようなものがありますgrep
。それが何をすべきかわかりません。> file
方法」ファイルに直接出力(ターミナルにダンプする代わりに)「しかし| awk
スーダンは」出力をキャプチャして次に送信します。awk
tee
2つのことを同時に行うことはできないようです。