【发布时间】:2017-10-09 19:46:29
【问题描述】:
我有一个包含文件大小、文件日期、文件时间和文件路径记录的文本文件。文件路径可以包含空格并且可以很长(古典音乐名称)。我想用文件日期、文件时间、文件大小和文件路径打印文件。第一部分,没有文件路径很简单:
awk '{print $2,$3,$1}' filelist.txt
这可行,但它会在两行上打印记录:
awk '{print $2,$3,$1,$1=$2=$3=""; print $0}' filelist.txt
我尝试过使用 cut -d' ' -f '2 3 1 4-' ,但这不允许重新排列字段。我可以使用 sed 加入来解决两行问题。一定有办法只使用awk。总之,我想打印第 2 个、第 3 个、第 1 个以及从第 4 个字段到最后。有人可以帮忙吗?
【问题讨论】:
-
edit 您的问题包括简洁、可测试的样本输入和预期输出。
-
当您尝试在末尾添加
$4时出了什么问题?awk '{print $2, $3, $1, $4}' filelist.txt -
@leekaiinthesky 正如OP所说,文件路径可能包含空格,因此它不适合
$4;相反,它可以传播到不可预测数量的字段$4、$5、$6等。考虑一个文件路径C:\Program Files\Common Files\microsoft shared\Team Foundation Server\something——它将分成六个字段!