私はls -l
次の出力をもたらす実行中です:
-rw-r----- 1 webadm webgrp 168 Jul 19 16:00 SYNCHRO_20120719_1600.csv
最後の 2 つのフィールドを取得する方法はありますか? すなわち:
16:00 SYNCHRO_20120719_1600.csv
GNU日付のシステムの場合:
for f in *; do
printf '%s %s\n' "$(date +%H:%M -r "$f")" "$f"
done
これは、スペースを含むファイル名、または改行を含むファイル名でも正しく機能しますが、ファイル名が埋め込まれた改行とレコードで区切られた改行を区別することはできません。(これが重要な場合は、ヌル区切り文字を使用してください)。
これはあなたが望むことをするはずです:
ls -l | awk '{print $8" "$9}'
これを試して:
ls -l | awk '{print $(NF-1), " ", $NF}'
行の最後から 2 番目と最後のフィールドが表示されます。これは時刻とディレクトリ エントリの名前であり、フィールドの特定の番号には依存しません。
ただし、空白を含む名前で問題が発生する可能性があります。
@CharlesDuffy が提供する for processingの使用に関するこのページを参照してください。'ls'