内部コンマと引用符を使用して、コンマで区切られた値から与えられた列を抽出します。

内部コンマと引用符を使用して、コンマで区切られた値から与えられた列を抽出します。

フィールドがコンマで区切られたファイルがあります。

いくつかの入力例:

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

csvPythonにはそれを自動的に処理するモジュールがあります。たとえば、以下は目的のタスクを実行する短いスクリプトです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=',')]"

関連情報