これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド tabmergep です。
プログラム:
NAME
tabmerge - 共通フィールドで区切られたファイルを統一する
SYNOPSIS
tabmerge [アクション] [オプション] ファイル1 ファイル2 [...]
アクション:
--min すべてのファイルに存在するフィールドのみを取得 [デフォルト]
--max 存在するすべてのフィールドを取得
-f|--fields=f1[,f2]
カンマ区切りリスト
オプション:
-l|--list 利用可能なフィールドを一覧表示する
--fs=x フィールド区切り文字として「x」を使用します
(デフォルトはタブ「\t」です)
--rs=x レコード区切り文字として「x」を使用します。
(デフォルトは改行「\n」です)
-s|--sort=f1[,f2] フィールドのデータを ASCII-betically ソートします
--stdout 元の区切り形式でデータを出力します
(つまり、表形式ではない)
--help 簡単なヘルプを表示して終了
--man 完全なドキュメントを表示
DESCRIPTION
このプログラムは、区切りテキスト ファイルのフィールド (行ではなく) をマージします。 つまり、
いくつかのファイルは、構造が互いにほとんど異なりますが、まったく異なります (
フィールド名、番号、または順序)、このスクリプトを使用すると、ファイルを簡単に統合できます
すべて同じフィールドを持つ XNUMX つのファイルに。 出力は、決定されたフィールドに基づくことができます
XNUMX つの「アクション」フラグによって。
次の例では、次のフィールドを含む XNUMX つのファイルを考えます。
+-----------+---------------------------------+
| | ファイル | フィールド | フィールド
+-----------+---------------------------------+
| | merge1.tab | 名前、タイプ、位置 |
| | merge2.tab | 名前、タイプ、位置、lod_score |
| | merge3.tab | 名前、役職 |
+-----------+---------------------------------+
ファイル内の使用可能なすべてのフィールドとそれらが存在する回数を一覧表示するには:
$ tabmerge --リストのマージ*
+----------+-------------------+
| | フィールド | フィールドNo. 回 現在 |
+----------+-------------------+
| | lod_score | 1 |
| | 名前 | 3 |
| | 位置 | 3 |
| | タイプ | 2 |
+----------+-------------------+
最小限の重複フィールドでファイルをマージするには:
$ tabmerge マージ*
+------------+----------+
| | 名前 | 位置 |
+------------+----------+
| | RM104 | 2.30 |
| | RM105 | 4.5 |
| | TX5509 | 10.4 |
| | UU189 | 19.0 |
| | Xpsm122 | 3.3 |
| | Xpsr9556 | 4.5 |
| | DRTL| 2.30 |
| | ALTX | 4.5 |
| | DWRF | 10.4 |
+------------+----------+
ファイルをマージしてすべてのフィールドを含めるには:
$ tabmerge --max マージ*
+----------+----------+----------+--------+
| | lod_score | 名前 | 位置 | タイプ |
+----------+----------+----------+--------+
| | | | RM104 | 2.30 | RFLP |
| | | | RM105 | 4.5 | RFLP |
| | | | TX5509 | 10.4 | AFLP |
| | 2.4 | UU189 | 19.0 | SSR |
| | 1.2 | Xpsm122 | 3.3 | マーカー |
| | 1.2 | Xpsr9556 | 4.5 | マーカー |
| | | | DRTL| 2.30 | | |
| | | | ALTX | 4.5 | | |
| | | | DWRF | 10.4 | | |
+----------+----------+----------+--------+
「名前」フィールドと「タイプ」フィールドのみをマージして抽出するには:
$ tabmerge -f 名前、タイプマージ*
+------------+--------+
| | 名前 | タイプ |
+------------+--------+
| | RM104 | RFLP |
| | RM105 | RFLP |
| | TX5509 | AFLP |
| | UU189 | SSR |
| | Xpsm122 | マーカー |
| | Xpsr9556 | マーカー |
| | DRTL| | |
| | ALTX | | |
| | DWRF | | |
+------------+--------+
「name」フィールドと「lod_score」フィールドのみでファイルをマージし、名前でソートするには:
$ tabmerge -f 名前,lod_score -s 名前マージ*
+---------+----------+
| | 名前 | lod_score |
+---------+----------+
| | ALTX | | |
| | DRTL| | |
| | DWRF | | |
| | RM104 | | |
| | RM105 | | |
| | TX5509 | | |
| | UU189 | 2.4 |
| | Xpsm122 | 1.2 |
| | Xpsr9556 | 1.2 |
+---------+----------+
同じことを行いますが、元のタブ区切りの入力を模倣するには:
$ tabmerge -f name,lod_score -s name --stdout マージ*
名前 lod_score
ALTX
DRTL
DWRF
RM104
RM105
TX5509
UU189 2.4
Xpsm122 1.2
Xpsr9556 1.2
なぜこれをしたいのですか? 区切り記号付きのテキスト ファイルがいくつかあるとします。
同じ構造で、それらから XNUMX つのファイルだけを作成したいが、フィールドが
各ファイルの異なる順序および/または一部のファイルには、より多くのまたは少ないフィールドが含まれる場合があります
その他。 (信じられないかもしれませんが、著者には、彼が望んでいない以上のことが起こります。)
onworks.net サービスを使用してオンラインで tabmergep を使用する