我有以下 CSV 格式:
"/opt=920MB;4512;4917;0;4855","/=4244MB;5723;6041;0;6359","/tmp=408MB;998;1053;0;1109","/var=789MB;1673;1766;0;1859","/boot=53MB; 656;692;0;729"
我想从每列中提取 2 个值,即数组中的第一个值和最后一个值,位于“=”之后,如下所示:
“/opt=920MB;4855”,“/=4244MB;6359”,“/tmp=408MB;1109”,“/var=789MB;1859”,“/boot=53MB;729”
每列可以这样工作:
echo "$string" | awk 'BEGIN{FS=OFS=";"} {split($0,a,";"); print a[1],a[5]}'
/opt=920MB;4855
任何提示都将受到高度赞赏。
最佳答案
s/\([^;]*\);\([^;]*\)\[^"]*\([^;]*\);\([^;]*\)\[^"]*\([^;]*\);\([^;]*\)\[^"]*\([^;]*\);\([^;]*\)\[^"]*\([^;]*\);\([^;]*\)\[^"]*/\1;\2;\3;\4;\5;\6;\7;\8;\9;\10/
关于linux - Bash 在 CSV 列中选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264003/