linux – 拆分和连接(从输入文件创建命令行参数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 拆分和连接(从输入文件创建命令行参数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1319字,纯文字阅读大概需要2分钟。
内容图文
如何以格式连接行文件中的文本:
line1
line2
...
得到像这样的结果
-o line1:1 -o line2:1 ...
我找到了解决方案如何连接像这样的分隔符:
ds=`cat list.txt`
${ds//$'\n'/','}
但我无法弄清楚如何为每个条目添加前缀.
解决方法:
这取决于您要对所创建的字符串执行的操作.它看起来像一组命令行选项,所以我假设您要将它与一些名为util的实用程序一起使用.
这是/ bin / sh的解决方案:
#!/bin/sh
listfile=$1
set --
while IFS= read -r line; do
set -- "$@" -o "$line:1"
done <$listfile
util "$@"
这将从脚本命令行中给出的文件中读取,并且对于从该文件读取的每一行,它将位置参数设置为包括-o和LINE:1,其中LINE是从文件读取的行.
在读完所有行之后,它使用构造的命令行参数列表调用util.通过使用“$@”(带双引号),我们确保单独引用构造的参数列表中的每个单独项.
使用bash并使用bash数组来保存我们创建的命令行参数:
#!/bin/bash
listfile=$1
while IFS= read -r line; do
args+=( -o "$line:1" )
done <$listfile
util "${args[@]}"
在上面的两个例子中,引用很重要.同样,我们创建了一个单独的项目数组(每个-o和每个LINE:1是列表中的项目).另一种方法是创建一个字符串-o LINE1:1 -o LINE2:1等,但如果用作util“$string”并且会经历单词拆分,这将被解释为一个单独的参数如果用作util $string,则文件名为globbing(如果输入文件中的任何行包含空格,制表符或文件名通配字符,则无法使用).
上面的两个脚本都将用作
$./script.sh file
其中script.sh是可执行脚本文件,file是要读取的输入文件名.
有关:
> Understanding “IFS= read -r line”
内容总结
以上是互联网集市为您收集整理的linux – 拆分和连接(从输入文件创建命令行参数)全部内容,希望文章能够帮你解决linux – 拆分和连接(从输入文件创建命令行参数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。