gpt4 book ai didi

bash - 如何解析具有多个字符的字符串以拆分 on-Bash 脚本

转载 作者:行者123 更新时间:2023-11-29 09:27:27 25 4
gpt4 key购买 nike

我有一个包含以下内容的文本文件:

folder4/file2folder4.txt >> folder2/folder2_1/file1folder2.txt

我有一个脚本,按如下方式解析每一行

while IFS=" >> " read -r src dest
do

if [ "$src" != "" ]; then
SOURCEFILES+=("$src")
fi
if [ "$dest" != "" ]; then
DESTINATIONFILES+=("$dest")
fi
done < $TransferDescriptor

解析如下:

SOURCEFILE="folder4/file2folder4.txt"

DESTINATION="> folder2/folder2_1/file1folder2.txt"

但是我想要的

SOURCEFILE="folder4/file2folder4.txt"

DESTINATION="folder2/folder2_1/file1folder2.txt"

任何帮助。谢谢

最佳答案

IFS 不是一个单一的多字符定界符;相反,它是单字符定界符的集合。您可以使用正则表达式来拆分由任意定界符分隔的两个字段。

regex='(.*) >> (.*)'
while IFS= read -r line dest
do
[[ $line =~ $regex ]] || continue
src=${BASH_REMATCH[1]}
dest=${BASH_REMATCH[2]}

if [[ -n $src ]]; then
SOURCEFILES+=("$src")
fi
if [[ -n $dest ]]; then
DESTINATIONFILES+=("$dest")
fi
done < "$TransferDescriptor"

关于bash - 如何解析具有多个字符的字符串以拆分 on-Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42635429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com