string - 如何拆分分隔字符串以在 bash 中组成 dd 命令?
问题描述
我想阅读一个类似于下图所示的配置文件:
source/path:blocksize,offset,seek,count
source/path2:blocksize,offset,seek
source/path3:blocksize,offset
其中和是一些二进制文件的路径source/path
,而 offset、seek、count 和 blocksize 是命令的相应值。
请注意,变量可能会有所不同,例如某些二进制文件可能没有搜索或命令的搜索和计数值。source/path2
source/path3
dd
dd
我应该如何拆分以上行来编写dd
这样的命令
dd if=${source/path} bs=${blocksize} seek=${seek} count=${count}
dd if=${source/path} bs=${blocksize} seek=${seek}
dd if=${source/path} bs=${blocksize}
?
如果需要对上述格式进行修改以使其易于解析,那是可以的,因为我用尽了我幼稚的头脑所能想到的所有可能性。
解决方案
希望这可以帮助:
$ cat <<EOF | while read line; do arr=($(sed 's/[,:]/ /g' <<< $line)); echo "source:${arr[0]} block:${arr[1]} offset:${arr[2]} seek:${arr[3]} count:${arr[4]}"; done
source/path:blocksize,offset,seek,count
source/path2:blocksize,offset,seek
source/path3:blocksize,offset
EOF
source:source/path block:blocksize offset:offset seek:seek count:count
source:source/path2 block:blocksize offset:offset seek:seek count:
source:source/path3 block:blocksize offset:offset seek: count:
大概的概念:
#!/usr/bin/env bash
your_command | while read line; do
arr=($(sed 's/[,:]/ /g' <<< $line));
echo "source:${arr[0]} block:${arr[1]} offset:${arr[2]} seek:${arr[3]} count:${arr[4]}"
# Do whatever processing & validation you want here
# access from array : ${arr[0]}....${arr[n]}
#
done
如果你有文件,那么:
#!/usr/bin/env bash
while read line; do
arr=($(sed 's/[,:]/ /g' <<< $line));
echo "source:${arr[0]} block:${arr[1]} offset:${arr[2]} seek:${arr[3]} count:${arr[4]}"
# Do whatever processing & validation you want here
# access from array : ${arr[0]}....${arr[n]}
#
done < "path/to/your-file"
推荐阅读
- ui-automation - 为什么我必须在 Windows 上运行自动化测试用例?
- javascript - 有没有办法重新定义 Javascript charCodeAt 和 fromCharCode 从函数中调用的标准 Ascii 字符集?
- python-3.x - 如何根据 AUC 指标在 Keras 中保存最佳模型?
- ios - 如何从 iOS 10 及更低版本的 WKWebView 获取 cookie?
- c# - ASP.Net Core MVC - 部分视图的身份验证上下文不同?
- android - IIS 和 Apache Content-Type 标头... IIS 只接受一个,Apache 接受多个
- python - 如何在数据框 python 中使用时间戳查找值
- kubernetes - 如何在 microk8s 中获取不记名令牌?
- javascript - d3覆盖对象mousedown事件处理
- java - 如何根据特定条件读取和附加文本文件