gpt4 book ai didi

linux - 是否有一个程序可以像 printf 一样以整个文件作为输入?

转载 作者:行者123 更新时间:2023-12-03 19:40:07 24 4
gpt4 key购买 nike

我的用例如下。
文件.txt

First arg: %s
Second %s arg,
Third %s


运行 prog file.txt "one" "$(ls dir1/dir2)" "three"导致

First arg: one
Second file1 file2 file3 arg,
Third three


我首先想到使用 sed,但是当 bash 替换被读取为这样的格式字符时,不可避免地会遇到问题 sed s/%1/$VAR/g -> sed s/%1/dir1/dir2/file1/g我想我可以按行迭代并在替换之前和之后获取文本,然后插入
FIRST=$(sed "s/%s.*//" <<< $LINE)
SECND=$(sed "s/.*%s//" <<< $LINE)

echo "$FIRST $SUB $SECND"
尽管这仅限于每行一个子程序,如果存在,我更喜欢更清洁的解决方案。

最佳答案

您可以使用 printf将整个文件作为格式化字符串:

printf "$(< file.txt)\n" one two three
请注意,命令替换会删除尾随的换行符,因此单独的 \n被加回来;见 How to avoid bash command substitution to remove the newline character?详情。

关于linux - 是否有一个程序可以像 printf 一样以整个文件作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66287244/

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