タグ付けされた質問 「csv」

データを含むファイルは、列を区切るために、多くの場合カンマ(したがって、カンマ区切り値)でテーブルに配置されます。行は改行で区切られます(ただし、フィールドは引用符で区切られた改行を含めることができるため、すべての改行が行区切り文字であるとは限りません。このタグは、行ごとに1つのレコードを使用したり完全に引用符を外したりするのではなく、本格的なCSVデータに使用します(csv-simpleを使用)そのようなデータの場合)。

6
jqを使用して値を抽出し、CSVでフォーマットする
以下のJSONファイルがあります。 { "data": [ { "displayName": "First Name", "rank": 1, "value": "VALUE" }, { "displayName": "Last Name", "rank": 2, "value": "VALUE" }, { "displayName": "Position", "rank": 3, "value": "VALUE" }, { "displayName": "Company Name", "rank": 4, "value": "VALUE" }, { "displayName": "Country", "rank": 5, "value": "VALUE" }, ] } この形式のCSVファイルが欲しいです。 …
58 bash  python  csv  json  jq 

19
csvファイルを処理するための堅牢なコマンドラインツールはありますか?
CSVファイルを使用していますが、コマンドラインから行または列の内容をすばやく確認する必要がある場合があります。多くの場合cut、head、tail、と友人が仕事をします。ただし、cutは次のような状況に簡単に対処できません。 "this, is the first entry", this is the second, 34.5 ここでは、最初のコンマは最初のフィールドの一部ですが、cut -d, -f1一致しません。自分で解決策を書く前に、この仕事のためにすでに存在する優れたツールを誰かが知っているかどうか疑問に思っていました。少なくとも、上記の例を処理し、CSV形式のファイルから列を返すことができる必要があります。他の望ましい機能には、最初の行に指定された列名に基づいて列を選択する機能、他の引用スタイルのサポート、およびタブ区切りファイルのサポートが含まれます。 そのようなツールを知らないが、そのようなプログラムをBash、Perl、Python、または他の一般的なスクリプト言語で実装することに関する提案がある場合、私はそのような提案を気にしません。


2
CSVファイルを処理するために1つのスクリプトに複数のsedコマンドを結合します
このようなCSVファイルを持っている: HEADER "first, column"|"second "some random quotes" column"|"third ol' column" FOOTER 次のような結果を探します: HEADER first, column|second "some random quotes" column|third ol' column 言い換えると、「FOOTER」を削除すると、開始、終了、および前後に引用符が付きます。 これまでのところ、このコードは動作します: sed '/FOOTER/d' csv > csv1 | #remove FOOTER sed 's/^\"//' csv1 > csv2 | #remove quote at the beginning sed 's/\"$//' csv2 > csv3 | #remove quote …
34 sed  csv 

4
セミコロンで区切られたフィールドを使用して、コマンドラインで.xlsx(MS Excel)ファイルを.csvに変換する
これは完全にUnix / Linux関連の質問ではないことを理解しています。しかし、これはLinuxで行うことなので、誰かが答えを期待しています。 オンラインExcelファイル(.xlsx)があり、定期的に(他の人によって)更新されます。そのExcelシートを処理するために、スクリプトを作成してcronjobとして入れたいと思います。しかし、それを行うには、.csvセミコロンで区切られた列を持つテキストファイルに変換する必要があります。一部の列にはコンマが含まれているため、残念ながらコンマで区切ることはできません。シェルからこの変換を行うことはまったく可能ですか?Open officeがインストールされており、GUIを使用してこれを実行できますが、コマンドラインからこれを実行できるかどうかを知りたいです。ありがとう! PS:私もMacマシンを持っているので、そこで何らかの解決策が機能するなら、それも同様に良いことです。:)

5
sedまたはawkでCSVファイルを操作する方法は?
sedまたはを使用してCSVファイルに次のことを行うにはどうすればよいawkですか? 列を削除する 列を複製する 列を移動する 200行を超える大きなテーブルがありますが、にあまり詳しくありませんsed。
23 sed  awk  csv 

7
コンマ区切りファイルでのみ引用符の間のコンマを削除します
入力ファイルがコンマ(,)で区切られています。二重引用符で囲まれたいくつかのフィールドには、カンマが含まれています。ここにサンプル行があります 123,"ABC, DEV 23",345,534.202,NAME 二重引用符と二重引用符内で発生するすべてのコンマを削除する必要があります。したがって、上記の行は以下に示すように解析されるはずです 123,ABC DEV 23,345,534.202,NAME を使用して次のことを試みましたsedが、期待した結果が得られませんでした。 sed -e 's/\(".*\),\(".*\)/\1 \2/g' sed、awkまたはその他のUNIXユーティリティを使用した簡単なトリックはありますか?
23 text-processing  sed  awk  csv 

6
コマンドラインに優しいスプレッドシート
そのようなものは存在しますか?CLI環境で適切に表示されるテキストベースのスプレッドシート。私は自分が好きなようにできることcat foobar.csvを知っていますが、それは特に実用的でも魅力的でもありません。テーブルをフォーマットするのが難しいとは想像できず、おそらく特定のルール(数学?)に従うこともできます。 Emacsはorg-modeテキストベースのテーブルを非常にうまく処理し、複数の形式にエクスポートできます。ただし、Emacsを使用する必要があります!Vimユーザーとしては避けたいものです。

3
ファイルの5番目の列の値に基づいて.CSVファイルをフィルター処理し、それらのレコードを新しいファイルに出力します
次の形式の.CSVファイルがあります。 "column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10 "12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013","" "23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013","" "23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013","" "46476","15467534544","lengthy string, with …
16 linux  sed  awk  csv  filter 


8
個別の行を引用符付きのエントリを含むコンマ区切りリストに変換する
次のデータ(Rmarkdownファイルから解析されたRパッケージのリスト)があり、それをインストールのためにRに渡すことができるリストにしたい: d3heatmap data.table ggplot2 htmltools htmlwidgets metricsgraphics networkD3 plotly reshape2 scales stringr リストをフォームのリストに変換したい: 'd3heatmap', 'data.table', 'ggplot2', 'htmltools', 'htmlwidgets', 'metricsgraphics', 'networkD3', 'plotly', 'reshape2', 'scales', 'stringr' 現在、生ファイルから上記のリストに移動するbashパイプラインがあります。 grep 'library(' Presentation.Rmd \ | grep -v '#' \ | cut -f2 -d\( \ | tr -d ')' \ | sort | uniq 新しい行をコンマ区切りリストに変換するためのステップを追加したいと思います。を追加しようとしましたがtr '\n' …
15 linux  sed  csv  tr 

5
grepの一致後にファイル内の行数をカウントするにはどうすればよいですか?
csvファイルの問題のある行の後の行数をカウントしようとしています。grep -a #一致が検出された後、#行数を出力する構文を使用できることを認識しています。実際の行数にのみ興味があります。数値をMAX_INTに設定し、それをファイルにパイプして、さらに処理を行うことができることに気付きました。 カウントを伝えるための簡潔なワンライナーを探しています。 助言がありますか?
14 files  grep  csv 


4
ファイルからデータを抽出し、1つの列値に基づいて異なるファイルに配置します
以下の値でcsvファイルを生成します yp1234,577,1,3 yp5678,577,3,5 yp9012,132,8,9 データを抽出し、2番目の列に基づいてファイルを作成する必要があります。577の場合、行全体を抽出して別のファイルに配置する必要があります。つまり、2番目の列が577だけの行と、2番目の列が132だけの別のファイルが必要です。 IFを使用しようとしましたが、動作しませんでした
13 csv  split 

4
別のファイルにリストされているIDを持つテキストファイルから行を選択します
UNIXシェルで多くのgrep awkソートを使用して、中サイズ(約10M〜100M行)のタブ区切りの列テキストファイルを処理します。この点で、UNIXシェルは私のスプレッドシートです。 しかし、私には1つの大きな問題があります。それは、IDのリストを指定してレコードを選択することです。 持つtable.csv形式のファイルid\tfoo\tbar...とids.csvIDのリストを含むファイルを、のみからレコードを選択するtable.csvのID存在とids.csv。 一種の/programming/13732295/extract-all-lines-from-text-file-based-on-a-given-list-of-idsですが、perlではなくシェルを使用しています。 grep -Fidが可変幅の場合、明らかに偽陽性を生成します。 join私が理解できなかったユーティリティです。まず、アルファベット順の並べ替えが必要です(通常、ファイルは数値順に並べ替えられます)が、それでも正しくない順序について文句を言わず、一部のレコードをスキップせずに機能させることはできません。だから私はそれが好きではありません。^id\tIDの数が多い場合、-sを使用したファイルに対するgrep -f は非常に遅くなります。 awk面倒です。 これに対する良い解決策はありますか?タブ区切りファイル用の特定のツールはありますか?追加機能も大歓迎です。 UPD:修正済みsort->join
13 shell  csv 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.