filesize、filedate、filetime、およびfilepathレコードを含むテキストファイルがあります。ファイルパスは空白を含むことができ、非常に長くてもよい(クラシック音楽名)。私はファイルをfileate、filetime、filesize、およびfilepathで印刷したいと思います。この作品私はawkを使って並べ替えられたフィールドを印刷し、次に4番目のフィールドから最後まで印刷したい
awk '{print $2,$3,$1}' filelist.txt
が、それは2行にレコードを出力します:ファイルパスなしの最初の部分は、簡単です
awk '{print $2,$3,$1,$1=$2=$3=""; print $0}' filelist.txt
私は-d」 『-f』 2カットを使用して試してみました3 1 4- 'であるが、フィールドを並べ替えることはできない。私はsedを使って2行の問題を解決することができます。 awkだけを使う方法がなければならない。要約すると、第2、第3、第1、第4フィールドから最後まで印刷したいと思います。誰も助けることができますか?
[編集]あなたの質問簡潔な、検証可能なサンプル入力とexpecteを含めますd出力。 –
最後に '$ 4'を追加しようとするとどうなりますか? 'awk '{print $ 2、$ 3、$ 1、$ 4}' filelist.txt' – leekaiinthesky
@leekaiinthesky OPが言っているように、ファイルパスにはスペースが含まれていて、' $ 4'に収まりません。代わりに、予期せぬ数のフィールド$ 4、$ 5、$ 6などに広がる可能性があります。 C:¥Program Files¥Common Files¥Microsoft Shared¥Team Foundation Server¥something'のファイルパスを考えてみましょう。これは6つのフィールドに分割されます! – CiaPan