gpt4 book ai didi

linux - unix 将文件列表连接到线上

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:42 25 4
gpt4 key购买 nike

在一个目录中,有多个文件,例如:

file1 
file2
file3

是否有一种简单的方法可以在 bash 中连接这些文件以获取一行(通过“OR”连接),如下所示:

文件1或文件2或文件3

或者我需要为其编写脚本吗?

最佳答案

您可以使用此函数打印所有以 "OR " 作为分隔符的文件名(包括带有空格、换行符或特殊字符的文件名)(假设您的文件名不包含 ASCII 代码 4):

orfiles() {
local IFS=$'\4'
local out="$*"
echo "${out//$'\4'/ OR }"
}

然后将其称为:

orfiles *

工作原理:

  1. 我们在函数内部将 IFS(内部字段分隔符)设置为 ASCII 4
  2. 我们将 "$*" 的输出存储在局部变量 out 中。这将在变量 $out 中的每个文件名后面放置 \4
  3. 最后,使用 BASH 字符串替换,我们在打印 $out 的输出时将 \4 全局替换为 "OR "

在 Unix 系统中 IFS 只是一个单字符分隔符,因此它不能存储多字符串 "OR ",我们必须按照如上所示分 2 个步骤来完成此操作。

关于linux - unix 将文件列表连接到线上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46298684/

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