如何从以下文本中提取文本并将其存储到变量中:
05:21-09:32, 14:21-19:30
在这里,我想将 05 存储在一个变量中,21 存储在另一个变量中,09 存储在另一个变量中,依此类推。所有值必须存储在数组或单独的变量中。
我已经尝试过:
k="05:21-09:32, 14:21-19:30"
part1=($k | awk -F"-" '{print $1}' | awk -F":" '{print $1}')
part2=($k | awk -F"-" '{print $2}' | awk -F":" '{print $1}')
part3=($k | awk -F"," '{print $2}' | awk -F":" '{print $1}')
part4=($k | awk -F"-" '{print $3}' | awk -F":" '{print $1}')
我需要一个更清晰的解决方案或简短的解决方案。
最佳答案
您可以将read
与-a
数组选项一起使用:
IFS=':-, ' read -ra my_arr <<< "05:21-09:32, 14:21-19:30"
上面的代码将按 :
、-
、、
和空格分割输入字符串:
$ echo "${my_arr[0]}" "${my_arr[1]}" "${my_arr[2]}" "${my_arr[3]}"
05 21 09 32
关于linux - 使用 Linux shell 中的任何命令提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37940255/