フィールドがコンマで区切られたファイルがあります。
いくつかの入力例:
col1,"1,2",col3
col1,"1,2,3",col3
col1,"1 2,3",col3
col1,"1 "2,3"",col3
これで、2番目の列を取得する必要があります。
"1,2"
"1,2,3"
"1 2,3"
"1 "2,3""
cut -d, -f2 file
やりたいことはしません。
それでは、上記の入力で列2をどのように検索しますか?
答え1
オープンオフィスがある場合は、それを使用してファイルを開くことができ、開くときに「区切り値」をコンマに設定します。その後、2番目の列をコピーできます。
答え2
csv
Pythonにはそれを自動的に処理するモジュールがあります。たとえば、以下は目的のタスクを実行する短いスクリプトですstdin
。
import csv
import sys
for columns in csv.reader(sys.stdin, delimiter=","):
print columns[1]
ファイルに保存することも、コマンドラインから呼び出すことも難しくありません。
... | python -c "import csv, sys; print [c[1] for c in csv.reader(sys.stdin, delimiter=',')]"