我有一个看起来像这样的文件
if( $('.clienttable').length > 0 ) {
$('.clienttable').DataTable( {
pageLength: 10,
select: true,
responsive: true,
dom: '<"html5buttons"B>lTfgitp',
buttons: [
{
extend: 'copyHtml5',
exportOptions: {
columns: [1,2,3,4,5,6],
modifier: {
selected: true
}
}
},
{
extend: 'csvHtml5',
exportOptions: {
columns: [1,2,3,4,5,6],
modifier: {
selected: true
}
}
},
{
extend: 'excelHtml5',
exportOptions: {
columns: [1,2,3,4,5,6],
modifier: {
selected: true
}
}
},
{
extend: 'pdfHtml5',
exportOptions: {
columns: [1,2,3,4,5,6],
modifier: {
selected: true
}
},
title: 'List of Clients',
}
],
columnDefs: [
{ targets: [0], orderable: false },
{ targets: [7], orderable: false }
],
"order": [[ 6, "desc" ]]
});
}
我希望提取3.和4.列中的日期和时间并将其保存到变量中。 (dir_path是目录的名称,source_file是我上面描述的文件)
.../proj_1/file1.txt 8 2018-03-14 07:46:01
.../proj_1/file3.txt 3 2018-03-14 07:47:01
.../proj_1/file2.txt 10 2018-03-14 07:45:01
.../file1.txt 2 2018-03-14 07:50:01
我想要的输出是
variable=$(grep "$dir_path/.*" source_file | grep -v "$dir_path/.*/" | awk '/[0-9]/{print ($3 $4)}')
但是使用此代码,输出看起来像这样
2018-03-14 07:46:00
2018-03-14 07:47:00
2018-03-14 07:45:01
如何在日期和时间之间放置空格?它甚至可能吗?如果我在awk表达式中有空格,则时间和日期会保存在单独的元素中,这不是我想要的。
感谢您的帮助!
答案 0 :(得分:1)
以下情况如何?
awk '/[0-9]/{print ($3" "$4)}'
适合我:
awk '/[0-9]/{print ($3" "$4)}' file1.txt
2018-03-14 07:46:01
2018-03-14 07:47:01
2018-03-14 07:45:01
2018-03-14 07:50:01
有用的链接:StackOverflow case: AWK to print field $2 first, then field $1