我有一个文本文件FILENAME
。我想在第一列字段的 -
处拆分字符串,并从每行中提取最后一个元素。这里 "$(echo $line | cut -d, -f1 | cut -d- -f4)";
单独并没有给我正确的结果。
文件名:
TWEH-201902_Pau_EX_21-1195060301,15cef8a046fe449081d6fa061b5b45cb.final.cram
TWEH-201902_Pau_EX_22-1195060302,25037f17ba7143c78e4c5a475ee98e25.final.cram
TWEH-201902_Pau_T-1383-1195060311,267364a6767240afab2b646deec17a34.final.cram
我尝试过的代码:
while read line; do \
DNA="$(echo $line | cut -d, -f1 | cut -d- -f4)";
echo $DNA
done < ${FILENAME}
我想要的结果
1195060301
1195060302
1195060311
最佳答案
请您尝试以下操作:
while IFS=, read -r f1 _; do # set field separator to ",", assigns f1 to the 1st field and _ to the rest
dna=${f1##*-} # removes everything before the rightmost "-" from "$f1"
echo "$dna"
done < "$FILENAME"
关于linux - 字符串分割并提取bash中的最后一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64672734/