一部のデータを含むテーブルがあり、数字(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 |
...あなたがどんな人なのかによって異なります。実際に出力として欲しい。