数値のみを含む列を削除

数値のみを含む列を削除

一部のデータを含むテーブルがあり、数字(Nr。、Cod、Tiraj)のみを含む列を削除する必要があります。

Nr.     Autor         Titlu        Cod     Tiraj     Tara
1    Gauss Carl   Aritmetica 1   297485   11454   Germania
2    Gauss Carl   Aritmatica 2   297484   10254   Germania
3    Gauss Carl   Aritmetica 3   297455   45872   Germania

結果は次のようになります。

Autor         Titlu         Tara
Gauss Carl   Aritmetica 1   Germania
Gauss Carl   Aritmatica 2   Germania
Gauss Carl   Aritmetica 3   Germania

列間TAB

私はこれを使ってテーブルを作成しました。

.TS
tab(@);
c c c c c c .
Nr.@Autor@Titlu@Cod@Tiraj@Tara
1@Gauss Carl@Aritmetica 1@297485@11454@Germania
2@Gauss Carl@Aritmatica 2@297484@10254@Germania
3@Gauss Carl@Aritmetica 3@297455@45872@Germania
.TE

ベストアンサー1

いくつかのジャンク行があり、フィールド区切り文字として使用されるCSVデータセットから列をNR.削除Codしようとしています。Tiraj@

sed -e 1,3d -e '$d' file |
csvcut -d @ -C 'Nr.,Cod,Tiraj' |
csvformat -D @

その出力は次のとおりです。

Autor@Titlu@Tara
Gauss Carl@Aritmetica 1@Germania
Gauss Carl@Aritmatica 2@Germania
Gauss Carl@Aritmetica 3@Germania

削除された内容を再度追加し、新しいsed列数に合わせて調整し、新しいファイルに書き込みます。

{
    printf '%s\n' .TS 'tab(@);' 'l l l .'
    sed -e 1,3d -e '$d' file |
    csvcut -d @ -C 'Nr.,Cod,Tiraj' |
    csvformat -D @
    echo .TE
} >file.new

csvcutユーティリティは、csvformat以下で提供されるCSVファイルを処理するためのツールキットであるcsvkitの一部です。https://csvkit.readthedocs.io/en/latest/

最終テーブルはnroff -t file.new

初期パイプラインの出力を実行してテーブルのバリアントを取得することもできますcolumn -s @ -t

$ sed -e 1,3d -e '$d' file | csvcut -d @ -C 'Nr.,Cod,Tiraj' | csvformat -D @ | column -s @ -t
Autor       Titlu         Tara
Gauss Carl  Aritmetica 1  Germania
Gauss Carl  Aritmatica 2  Germania
Gauss Carl  Aritmetica 3  Germania

または、次のものを使用できますcsvlook

$ sed -e 1,3d -e '$d' file | csvcut -d @ -C 'Nr.,Cod,Tiraj' | csvlook
| Autor      | Titlu        | Tara     |
| ---------- | ------------ | -------- |
| Gauss Carl | Aritmetica 1 | Germania |
| Gauss Carl | Aritmatica 2 | Germania |
| Gauss Carl | Aritmetica 3 | Germania |

...あなたがどんな人なのかによって異なります。実際に出力として欲しい。

おすすめ記事