
プロジェクト名、値、説明、コンポーネントの4つの列を含むCSVファイルがあり、ファイルはかなり大きいです。
上記のCSVファイルからコンポーネントを指定する行のみを表示するテンプレートを作成する必要があります(例:検索基準であるコンポーネント= 'abc')。
答え1
組み込みのコンマがないと仮定すると、awkはこれに適しています。
awk -F , '$4 == "abc" { print }' input.csv
答え2
csvkit:の他のツールを使用しましたcsvgrep
。
$ csvgrep -c 4 -m "abc" data.csv > test.csv
ファイルの結果内容は次のとおりですtest.csv
。
Itemname,Value,Description,Component
33,34,35,abc
-c
表示する列を指定します。タイトルも使用できます。スペルがまったく同じであることを確認してください。大文字が重要です。
$ csvgrep -c Component -m "abc" data.csv > test.csv
Itemname,Value,Description,Component
33,34,35,abc
そして-m
マッチングパターンです。マッチングに深く入りたい場合は、正規表現を使用してこれを行う方法があると確信しています。その後、というファイルに保存されますtest.csv
。
答え3
以下の内容がありますdata.csv
。
Itemname,Value,Description,Component
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
17,18,19,20
21,22,23,24
25,26,27,28
29,30,31,32
33,34,35,abc
37,38,39,40
41,42,43,44
45,46,47,48
49,50,51,52
53,54,55,56
57,58,59,60
61,62,63,64
65,66,67,68
69,70,71,72
73,74,75,76
77,78,79,80
81,82,83,84
85,86,87,88
89,90,91,92
93,94,95,96
97,98,99,100
使用csvkit
:
$ csvsql --query "SELECT * FROM data WHERE Component = 'abc'" data.csv
Itemname,Value,Description,Component
33,34,35,abc