Bashでプログラムを実行した後の出力は次のようになります(2行、:limiter、4つのデータ列)。
#003:BMW:11:36
#004:Audi:2:35
こんなbashテーブルに変換したい
数字 | 車 | ID | コスト |
---|---|---|---|
#003 | BMW | 11 | 36 |
#004 | アウディ | 2 | 35 |
これを達成するためにsed / awkを使用できますか?私のデータはファイルにありません。
ベストアンサー1
データ型を次のように指定するとします。
| Number | Car | ID | Cost |
| ------ | ---- | -- | ---- |
| #003 | BMW | 11 | 36 |
| #004 | Audi | 2 | 35 |
コマンドはcsvlook
以下から来ます。csvkitタイトルを最初に入力すると自動的に完了します。
ファイルを編集したり(またはデータジェネレータコマンドでヘッダーをエクスポートしたり)、先頭に行を追加してNumber:Car:ID:Cost
ヘッダーを挿入したり、即座にヘッダー行を提供したりできます。
$ { echo Number:Car:ID:Cost; cat file; } | csvlook
| Number | Car | ID | Cost |
| ------ | ---- | -- | ---- |
| #003 | BMW | 11 | 36 |
| #004 | Audi | 2 | 35 |
上記csvlook
のコマンドは、データがCSV文書であることを検出し、:
フィールド区切り文字として使用し(明示的に指定することもできます-d :
)、書式付きテーブルを生成します。
cat file
データを出力として生成する任意のコマンドに置き換えることができます。
最終出力csvlook
は有効なMarkdownコードであり、このウェブサイトでは次のようにレンダリングされます。
数字 | 車 | ID | コスト |
---|---|---|---|
#003 | BMW | 11 | 36 |
#004 | アウディ | 2 | 35 |
:
入力をCSVとして処理すると、引用符付きのフィールドをサポートできます。
$ cat file
#003:BMW:11:36
#004:Audi:2:35
#005:Saab:99:"1:50"
$ { echo Number:Car:ID:Cost; cat file; } | csvlook
| Number | Car | ID | Cost |
| ------ | ---- | -- | ---- |
| #003 | BMW | 11 | 36 |
| #004 | Audi | 2 | 35 |
| #005 | Saab | 99 | 1:50 |