使用“兩個空格”作為分隔符號從 csv 匯入到 Libreoffice Calc

使用“兩個空格”作為分隔符號從 csv 匯入到 Libreoffice Calc

我想將一些資料從 csv/文字檔案匯入到 Calc。

在第一列中,我希望有 '虛擬文字 # i',第二列是數值。

在文本文件中,'虛擬文字 # i' 和數值之間用幾個空格分隔。因此,我可能會透過使用“”(兩個空格)作為分隔符,然後勾選“合併分隔符”選項來實現此目的。

但是,我現在不知道該怎麼做。我嘗試使用“其他”作為自定義分隔器但它似乎將任意數量的空格解釋為一個。

這是我複製並貼上到電子表格中的初始資料。

初始文字數據

這就是我能得到的。請注意,取消標記「空格」選項只會完成右尾空格的計算。

如您所見,以下內容均無效。這 '虛擬文字 # i' 分佈在各個欄位中,因為 Libreoffice 似乎使用一個空格作為分隔符號。

在此輸入影像描述

第二個 (合併分隔符)接近了,但仍然沒有得到'虛擬文字 # i' 在第一列。

在此輸入影像描述

當@Zina 在另一個版本中測試它時,我檢查了我的 Libreoffice 版本(4.3.3.2),但我對它是否是根本原因持懷疑態度,因為它似乎是一個相當明顯的缺陷。

我究竟做錯了什麼?可能是版本缺陷?提前致謝。

答案1

我剛剛在 CentOS 7 上嘗試了 LibreCalc 4.3.7.2,它可以工作。您只需選擇“空格”和“合併分隔符號”。我創建了一個包含隨機資料的文字檔案(行甚至沒有相同數量的列),有些資料用 1 個空格劃分,有些資料用 2 個甚至更多空格劃分。我能夠在預覽窗格中看到啟用/停用“合併分隔符號”時資料如何變化。你確定有空格嗎?是不是有些特殊字元沒有顯示?

好的。現在我明白了你的解釋。我認為只有當您輸入“虛擬文字#??”時,您才能獲得想要的行為在引號下,取消選擇「其他」以外的所有內容,您必須在其中輸入雙空格並將文字分隔符號設定為使用的引號。或者,您必須將所有雙空格替換為分號,正如其他人已經建議的那樣。

答案2

在(可編寫腳本的)兩步驟過程中,您可以使用 sed 將一些空格轉換為製表符,然後匯入。範例腳本:

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

相關內容