linux - Bash 在 CSV 列中选择多个值

标签 linux bash devops

我有以下 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/

相关文章:

linux -/dev/stdin 有输入吗?

amazon-web-services - 想要通过电子邮件发送云形成输出

c - 确定客户端绑定(bind)到的 TCP 端口号

php - 以非管理员身份安装 XAMPP

linux - shell 脚本 : How to cut part of a string

docker - cpu限制后失败docker容器

azure - 如何在Azure管道中为特定分支启用批处理

MySQL 在 Ubuntu 根文件系统中使用空间,如何更改为使用

linux - 安装软件包时如何解决 Linux 中的冲突?

bash - 在 Ubuntu/Bash 和 Windows/Powershell 之间生成具有不同结果的 SHA1 签名