-1

ユーザーがコマンド ラインの 3 番目の引数として入力するファイルを除いて、リモート サーバー上のディレクトリにあるすべてのファイルを追跡しようとしています。そのためには、tail の出力を別のファイルに送信する際の混乱を避けるために、ファイルの種類を grep する必要があります。

ディレクトリは/path/to/a/fileで、内部には file.log と file.out という 2 つのファイルが存在します。.out & .log を grep したい

これが私のコードです:

files=$(ssh host find /path/to/a/file -type f -name '^file')

for type in $($files | awk -F'.' '{print $2}') ; do

ssh host find . /path/to/a/file -type f ! -name "$3" | xargs 0 tail -n 20 > /destination/dir/host.$type 2>/dev/null

残念ながら、これはどれも機能しません。その理由はわかりません。

4

2 に答える 2

0

この正規表現が問題です:

-name '^file'

-name正規表現を使用せず、シェル グロブ パターンを使用します。

これを使用するとうまくいくはずです:

ssh host find /path/to/a/file -type f -name 'file*'

更新:このリストから特定のファイルを除外するには

ssh host find /path/to/a/file -type f \( -name 'file*' ! -name 'file.log00001' \)
于 2013-10-18T15:07:43.280 に答える