我遇到了我在bash中編寫的腳本的問題。我在while循環中逐行讀取.txt文件。該行的格式爲x:y:z:a:b:c。每個元素('x','a'等)對應於諸如年齡,身高,姓名等等。我已經成功設法打印出所需的字段,但是當我嘗試打印整個「x:y:z:a:b:c」時,「x:y:z」將打印到一個單元格中的.csv,和「a:b:c」將進入下一個單元格,原因是名稱和名字中有一個逗號。我知道這聽起來有點混亂,所以我可以在必要時進一步明確,但這裏是什麼樣子:當數據包含逗號時,在bash中生成一個CSV文件
Cell 1 Cell 2
age:height:number:last name first name:language
我想在一個單元中的所有信息。我認爲這個問題是由於最後名字和名字之間有一個逗號。請讓我知道,如果你有任何提示或指針。
編輯:下面是代碼的樣子:
while read INPUT do
str=$INPUT
IFS=: read -r -a ARR <<< "$str"
NAME=${ARR[0]}
AGE=${ARR[3]}
echo $AGE, $NAME >>Filedirectory.filename.csv
done<filedirectory.filename.txt
...其中filedirectory.filename.txt
包含以下內容:
INPUT=Smith, John:126 lbs:67in:26:College University
考慮的str = "Smith, John:126 lbs:67in:26:College University"
所以,`NAME =史密斯的樣本輸入,約翰,年齡= 26。理想情況下,輸出應該是彼此相鄰的2個單元,其填充爲:
26 - Smith, John
而是在Excel中輸出,當我打開CSV文件最終被:
12 - Smith - John
這裏,每個「 - 」象徵着一列(12
是在一個小區,在接下來的姓氏等)什麼我想要的是姓氏和名字是在一個單元格中,但顯然這不會發生,因爲名稱被格式化爲「Smith,John」並且逗號使事情變得複雜起來
更改分隔符,並設置爲字符分隔符打開電子表格? –
發佈您的代碼? – Riaz
我不能發佈我的代碼不幸 –