-2

私はls -l次の出力をもたらす実行中です:

-rw-r----- 1 webadm webgrp 168 Jul 19 16:00 SYNCHRO_20120719_1600.csv

最後の 2 つのフィールドを取得する方法はありますか? すなわち:

16:00 SYNCHRO_20120719_1600.csv

4

3 に答える 3

1

GNU日付のシステムの場合:

for f in *; do
    printf '%s %s\n' "$(date +%H:%M -r "$f")" "$f"
done

これは、スペースを含むファイル名、または改行を含むファイル名でも正しく機能しますが、ファイル名が埋め込まれた改行とレコードで区切られた改行を区別することはできません。(これが重要な場合は、ヌル区切り文字を使用してください)。

于 2012-07-19T14:27:01.260 に答える
1

これはあなたが望むことをするはずです:

ls -l | awk '{print $8" "$9}'
于 2012-07-19T14:19:34.173 に答える
1

これを試して:

 ls -l | awk '{print $(NF-1), " ", $NF}'

行の最後から 2 番目と最後のフィールドが表示されます。これは時刻とディレクトリ エントリの名前であり、フィールドの特定の番号には依存しません。

ただし、空白を含む名前で問題が発生する可能性があります。

@CharlesDuffy が提供する for processingの使用に関するこのページを参照してください。'ls'

于 2012-07-19T14:17:26.250 に答える