file.log.1
上書きされたログファイル(など)がたくさんありますfile.log.2
。デバイスからローカルコンピュータにコピーすると、元のタイムスタンプが失われました。だから時間順にまとめたいです。問題は、何が最新で、何が最も古いものであるかは必ずしもわからないということです。
私が望むのは、すべてのログが1つのディレクトリにある場合は、次のように印刷することです。
file: file.log.1
first line: [first line that isn't whitespace]
last line: [last line that isn't whitespace]
これを行うにはPythonスクリプトを書くことができますが、可能であればLinux組み込みスクリプトを使用することをお勧めします。 awk/sedのための仕事ですか?それとも、これは実際にスクリプト言語に適していますか?答えが「はい」の場合、awk / sedは何をしますか?
検索でこのawkコマンドを見つけましたが、ファイル名のみを受け入れ、最後の行の内容を印刷します(そして最後に可変数の空白行があるかもしれません)。
awk 'NR == 1 { print }END{ print }' filename
ベストアンサー1
だから私はsed
この答えが好きです。
for file in file.log.*
do
echo "file: $file"
echo -n "first line: "
cat "$file" | sed -n '/^\s*$/!{p;q}'
echo -n "last line: "
tac "$file" | sed -n '/^\s*$/!{p;q}'
done