777個の.docファイルがあり、各ファイルには次のような大きなExcelテーブルが含まれています。ここ図1のようにここでは、1 つの .doc ファイルのみが考慮されます。 .docファイルのExcelテーブルをUnixプログラミング言語および/またはスクリプトを介してCSVファイルに分割したいと思います。 Microsoftファイル形式をCSVファイルとして処理する方法が見つかりません。擬似コード:
- スレッドから拡張された.docファイルからExcelテーブルを抽出するUnixツールを使用して多くの.docテキスト+テーブル要素をCSVに抽出するには?
Excelテーブル(ここではCSVに変換されている可能性があります)を規則に従って別々の.CSVファイルに分割します。
新しい太字は新しいテーブルを表します。新しいCSVファイルです。
暗黙的な熱の適用場所(下/上)と日付(dd.mm.yyyy)は、個々のCSVファイルごとに.docファイルの最初の2行にあります。使用時間熱(朝/夕/夕)。
ルール別にターゲットファイルとその列を検索する
- Assistants.csv - 名前、日付、場所、時間
- Other.Assistants.csv - 名前、日付、場所、時刻
- General.csv - イベント、日付、場所、時間
図1 .docファイルのExcelテーブルの例
オペレーティングシステム:Linux Debian Stretch 9など
データ:.odtファイルここ
答え1
いいですね…
ミニチュートリアルスタート
したがって、毎日のレポートを取得するためにpostgresqlデータベースを作成する方法のいくつかのヒントは次のとおりです。
まず、まだpostgresqlをインストールしていない場合:
$sudo apt-get install postgresql
第二に、postgresqlを初めて使用する場合、Debianのpostgresqlのデフォルトインストールは、すべてのユーザーがピア認証を介してパスワードなしでログインできるように設定されます。ただし、ユーザーが所有するデータベースを作成する必要があります。
実行方法は次のとおりです。
- 特権シェルを入力してください
$ sudo -s
- ポストグレススーパーユーザーになる
#スポスト
- ユーザーが遊べるデータベースの作成
postgres$createb データベース名 -O ユーザー
その後、2回終了してユーザーモードに戻ります。
ポストグレス$終了
#出口
$
- postgresqlを使用する準備ができている必要があります。
テーブルを作成するためにインポートできるSQLファイルを作成しました。以下をコピーして同様の場所に貼り付けることができます。table.sql
CREATE TYPE shifts AS ENUM ('morning','evening','night');
CREATE TYPE titles AS ENUM ('assistant','other_assistant');
CREATE TABLE assistants (id integer, name char(20), title titles);
CREATE TABLE disposition (id integer, name char(20), shift shifts, day date, comments text);
CREATE TABLE schedule (id integer, name1 char(2), name2 char(20), name3 char(20), name4 char(20), name5 char(20), shift shifts, day date);
その後、テーブルをインポートします。
psql
user=>\i tables.sql
毎日のレポートを3つの別々のCSVファイルに解析する場合は、\copyコマンドを使用して各ファイルを各個別のテーブルに直接インポートできます。
このような:
\copy assistants FROM '~/assistants.csv' WITH (FORMAT csv);
\copy dispositions FROM '~/dispositions.csv' WITH (FORMAT csv);
\copy schedule FROM '~/schedule.csv' WITH (FORMAT csv);
これにより、テーブルにデータが入力され、今日コメントを残した人が誰であるか、そのコメントが何であるかを調べるなどのクエリを実行できます。
このような:
select * from disposition where day = 'TODAY';
次の出力が生成されることがあります。
id | name | shift | day | comments
----+----------------------+---------+------------+----------
| Vir | morning | 2017-10-23 | Peaceful
ミニチュートリアルエンド
役に立ちますか?それとも、私があまりにも深く考えているのか、あなたを混乱させているのでしょうか?