将所有文本文件合并为一行

时间:2015-08-06 07:01:37

标签: bash

我有一个包含命名约定文件的目录:

test.201506010000.csv
test.201506010005.csv
test.201506010010.csv
...
test.201506302355.csv

每个文件都保留数值。我想将所有文件合并为一个文件(逐行删除源文件),并且我希望在每行之前将文件名放在文件名之前。

期望目标:

merged.csv

2015-06-01 00:00,<value_of_text.201506010000.csv>
2015-06-01 00:05,<value_of_text.201506010005.csv>
...
2015-06-30 23:55,<value_of_text.201506312355.csv>

2 个答案:

答案 0 :(得分:0)

只需循环遍历文件,使用参数扩展从文件名中提取时间戳。

<?php namespace App\Providers;

use Illuminate\Routing\Router;
use Illuminate\Http\Request;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider {

    /**
     * This namespace is applied to the controller routes in your routes file.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @param  \Illuminate\Routing\Router  $router
     * @return void
     */
    public function boot(Router $router)
    {
        die('fadfasdfasd');
        parent::boot($router);

        //
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map(Router $router, Request $request)
    {

        $router->group(['namespace' => $this->namespace], function($router) {
            require app_path('Http/routes.php');
        });
    }

}



 // routes.php
    Route::post('admin/article/edit', [
        'as' => 'adminPostEditArticle',
        'uses' => 'Admin\ArticleController@postEditArticle'
    ]);
    Route::post('admin/article/create', [
        'as' => 'adminPostCreateArticle',
        'uses' => 'Admin\ArticleController@postCreateArticle'
    ]);
    Route::get('admin/article/delete/{articleId}', [
        'as' => 'adminDeleteArticle',
        'uses' => 'Admin\ArticleController@deleteArticle'
    ]);
    Route::get('admin/ajax/article/editForm/{articleId}', [
        'as' => 'adminAjaxEditArticleForm',
        'uses' => 'Admin\ArticleController@ajaxEditArticleForm'
    ]);
    Route::get('admin/ajax/article/createForm', [
        'as' => 'adminAjaxCreateArticleForm',
        'uses' => 'Admin\ArticleController@ajaxCreateArticleForm'
    ]);
    Route::get('admin/articles', [
        'as' => 'adminArticlesList',
        'uses' => 'Admin\ArticleController@index'
    ]);

答案 1 :(得分:0)

for file in test.*.csv; do printf "%s-%s-%s %s:%s,%s\n" ${file:5:4} ${file:9:2} ${file:11:2} ${file:13:2} ${file:15:2} $(cat $file) >>merged.csv; done