区切り文字として「2つの空白」を使用して、csv から Libreoffice Calc にインポートする

区切り文字として「2つの空白」を使用して、csv から Libreoffice Calc にインポートする

CSV/テキスト ファイルから Calc にデータをインポートしたいです。

最初の列には「ダミーテキスト # i'、2 番目の列には数値が表示されます。

テキストファイルでは、「ダミーテキスト # i' と数値は、いくつかの空白スペースで区切られています。したがって、おそらく ' ' (2 つの空白スペース) を区切り文字として使用し、' 区切り文字をマージするオプションにチェックマークを付けることでこれを実現できます。

しかし、私はこれをどうやって行うのか分かりません。カスタムとして「その他」を使ってみましたセパレーターしかし、空白スペースがいくつあっても 1 つとして解釈されるようです。

これは、スプレッドシートにコピーして貼り付ける初期データです。

初期テキストデータ

そして、これが私が得ることができるものです。「スペース」オプションのマークを外すと、右端のスペースのみが考慮されることに注意してください。

ご覧のとおり、以下のどれも役に立ちません。ダミーテキスト # i' は、Libreoffice が 1 つのスペースを区切り文字として使用しているように見えるため、さまざまな列に分散されています。

ここに画像の説明を入力してください

2番目(マージ区切り文字)は近づいてきましたが、まだ「ダミーテキスト # i最初の列に「」と入力します。

ここに画像の説明を入力してください

@Zina が別のバージョンでテストしたので、私は Libreoffice バージョン (4.3.3.2) をチェックしましたが、かなり目立つ欠陥のように思われるため、これが根本的な原因であるかどうかは疑わしいです。

何が間違っているのでしょうか? バージョンの欠陥でしょうか? よろしくお願いします。

答え1

CentOS 7 で LibreCalc 4.3.7.2 を試したところ、うまくいきました。「スペース」と「区切り文字の結合」を選択するだけです。ランダムなデータ (行の列数も同じではありません) を含むテキスト ファイルを作成しました。一部のデータは 1 つのスペースで区切られ、一部のデータは 2 つ以上のスペースで区切られています。プレビュー ペインで、「区切り文字の結合」を有効/無効にしたときにデータがどのように変化するかを確認できました。スペースは確かにありますか? また、一部の特殊文字が表示されていませんか?

わかりました。説明は理解できました。「ダミー テキスト #??」を引用符で囲み、「その他」以外のすべての選択を解除して、ダブル スペースを入れて、テキスト区切りを引用符に設定する場合にのみ、必要な動作が得られると思います。または、他のユーザーが既に提案しているように、すべてのダブル スペースをセミコロンなどに置き換える必要があります。

答え2

(スクリプト可能な) 2 段階のプロセスでは、sed を使用して一部のスペースをタブに変換してからインポートできます。サンプル スクリプト:

#!/bin/bash
tmpcsv=$(mktemp)
inputcsv=$1
mv $inputcsv $tmpcsv
sed 's/  /\t/g' $tmpcsv > $inputcsv
scalc $inputcsv

関連情報