我有一个像这样的文本文件
REP1.bam ./CONTROL/CONTROL.bam
这是一个制表符分隔的文件。我想在制表符/空格上拆分行并将各个列存储为单独的数组元素。
我做了这样的事情
while read -r line; do arr=(${line{///}); echo ${arr[1]}; done < test.txt
这给了我 .CONTROLCONTROL.bam 并且不保留斜线。
我怎样才能解决这个问题。
我有一个像这样的文本文件
REP1.bam ./CONTROL/CONTROL.bam
这是一个制表符分隔的文件。我想在制表符/空格上拆分行并将各个列存储为单独的数组元素。
我做了这样的事情
while read -r line; do arr=(${line{///}); echo ${arr[1]}; done < test.txt
这给了我 .CONTROLCONTROL.bam 并且不保留斜线。
我怎样才能解决这个问题。
我想你的意思是
${line///}
而不是$line{///}
. 这确实会给你,.CONTROLCONTROL.bam
因为你明确要求外壳用任何东西替换斜杠......($line{///}
只是变量的值,{///}
附加了一个文字。)我不确定你为什么要这样做。要获得两个不同变量中的两列,您需要做的就是使用
read -r var1 var2
. 然后你可以将它们存储到一个数组中,或者直接使用它们或使用
read -ra arr
(在 Bash 中)将字段直接拆分为数组。