Bash +从行中删除空格

问题描述 投票:0回答:2

我编写了以下bash代码以创建带磁盘分区的CSV路径,因此每个分区都将获得新的增量dev磁盘

number_of_disks=5
mount_p=({a..z})
path=` for i in \`seq 1 $number_of_disks \`; do mount_p="$(echo $mount_p| tr '[a-z]' '[b-z]a')"; echo /home/sd$mount_p/oop/app/data","; done `

但是当我打印$ path时,我们在每个分区之间获得空间

echo $path
/home/sdb/oop/app/data, /home/sdc/oop/app/data, 
/home/sdd/oop/app/data, /home/sde/oop/app/data, 
/home/sdf/oop/app/data,

第二个问题是在行尾的不必要的“,”

根据我的代码,如何创建没有空格的路径变量,并在CSV行的末尾没有“,”

linux bash shell awk sed
2个回答
3
投票

你正在使用一种非常复杂的方式(hacky as hell)来实现一些相当简单的方法:

path=$(echo /home/sd{a..e}/oop/app/data | tr ' ' ,)

0
投票

您可以像这样更改路径变量:

echo $path | sed 's/ //g;s/,$//g'

它将删除最后一个','和空格。

UPD。要么:

path=( $(echo /home/sd{b..z}/oop/app/data | tr ' ' ',') ); echo "${path[@]}"
© www.soinside.com 2019 - 2024. All rights reserved.