我嘗試了幾種方法來根據檔案的內容將帶有列的文本轉換為匯總的 csv 檔案,但我做不到。
記錄不以逗號開頭 = 以逗號開頭的第一列記錄 = 與第一列連接
當您找到下一個開頭沒有逗號的記錄時,從另一行開始
要處理的文本檔案:
08-ipa_group
,evouth.zip
,zipe.zip
,auth-service.zip
18-ws-api_group
,mocks.zip
,auth-service.zip
,a-service.zip
輸出
08-ipa_group,evouth.zip,zipe.zip,auth-service.zip
18-ws-api_group,mocks.zip,auth-service.zip,a-service.zip
uj5u.com熱心網友回復:
使用 awk:
awk -v ORS= '
/^[^,]/ {
eol()
}
END {
eol()
}
function eol() {
if (NR > 1)
print "\n"
}
1' file
uj5u.com熱心網友回復:
這是一個非常簡單的 shell 腳本:
- 創建空字串 vars 行和行
- 逐行讀取輸入檔案到 var 行
- 如果該行以逗號 (
... | grep '^,') 開頭,它將附加到 var 行 - 否則(這是第一列),所以對 row 做一些事情
- 如果行不為空(其初始狀態),則回顯并將其附加到 output.csv
- 否則設定為第一列資料
- 最后,追加行
rm -rf output.csv
line=''
row=''
while read -r line; do
[ "$line" = '' ] && continue # skip blank lines
if echo "$line" | grep -q '^,'; then # a "comma" line
row="${row}${line}"
else # a "first-col" line
if [ "$row" != '' ]; then # row is not in initial state
echo "$row" >> output.csv
fi
row="$line"
fi
done < input.txt
echo "$row" >> output.csv
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512817.html
標籤:重击壳CSV
