0
A
回答
6
容易在awk中:
awk -F, -vOFS=, '{$5=$5}1'
不要太用力在擊:
IFS=,
while read -a F; do
for ((i=0; i<5; i++)); do
F[i]=${F[i]}
done
echo "${F[*]}"
done
2
我發現GNU sed
的解決方案:
sed -r 's/^([^,]*)(,|)([^,]*)(,|)([^,]*)(,|)([^,]*)(,|)$/\1,\3,\5,\7,/'
# | | | | ^^^^
# | | | | | | | |
# |__________|__________|__________|__________| | | |
# |__________|__________|_____________| | |
# |__________|________________| |
# |___________________|
證明:
echo -e "a,b,c,d\nd,e,f\nx" | sed -r 's/^([^,]*)(,|)([^,]*)(,|)([^,]*)(,|)([^,]*)(,|)$/\1,\3,\5,\7,/'
a,b,c,d,
d,e,f,,
x,,,,
+1
證明,戰略經濟對話並不總是對工作的工具。 – 2012-03-21 13:16:31
4
例與awk
:
$ awk -F, '{printf("%s,%s,%s,%s,%s\n",$1,$2,$3,$4,$5)}' example.txt
a,b,c,d,
d,e,f,,
或
$ awk -F, -v OFS=, '{print $1,$2,$3,$4,$5}' example.txt
0
這是我非常喜歡的另一種方法是這樣的:
gawk '{print $0 ",,,,,"}' a | cut -d \, -f 1-5
我覺得這是更簡單明瞭
+0
如果還有更多的話,它也會在5個字段處截斷。有時可以,有時不可以,這取決於它的用途。 – ephemient 2012-03-22 01:18:37
相關問題
- 1. 如何在Bash文件名中填充填充數字?
- 2. 如何填充CSV文件丟失列
- 3. 如何在Bash中解析CSV文件?
- 4. 僅填充CSV文件中的頂點
- 5. 如何填充的CSV文件,SQL的輸出在UNIX
- 6. Bash腳本文件創建和填充
- 7. Compute Visual Profiler不填充.csv文件
- 8. 使用python填充CSV文件
- 9. 從CSV文件填充Android數據庫?
- 10. 從CSV文件填充數據集
- 11. 使用.csv文件數據填充IndexedDB
- 12. 如何在bash中填充文檔模板
- 13. 填充從CSV
- 14. 如何使用文件的行填充bash數組
- 15. 零填充Bash/Shell
- 16. 如何填充Node.js文件中的firebaseConfig?
- 17. Bash腳本 - 如何填充數組?
- 18. 從csv填充SQLite
- 19. 使用python從另一個.csv填充一個.csv文件
- 20. 如何將csv填充到textarea值
- 21. 在Apache Spark Scala中,如何從CSV中填充DataFrame中的Vectors.dense?
- 22. 在Bash中預填充提示
- 23. bash在循環中填充數組
- 24. 在bash中加入兩個csv文件
- 25. 在bash中讀取一個CSV文件
- 26. 在bash中的CSV文件清理
- 27. 如何在BASH中將csv文件讀入二維數組中?
- 28. 如何從文本文件填充JComboBox?
- 29. 用不包含頭文件記錄的CSV文件填充DataGridView
- 30. 在Excel中填充HttpResponce csv數據 - VBA
你能解釋一下這個awk-oneliner是如何工作的嗎? TIA – 2012-03-20 19:28:52
@ php-coder'{$ 5 = $ 5}'確保至少有5個字段,並強制Awk通過將'OFS'加入所有字段來重新計算'$ 0'。 '1'是一個總是正確的條件,沒有主體,所以主體默認爲'{print}',它輸出'$ 0'。 – ephemient 2012-03-20 19:50:56