在 bash 中使用 IFS 使用 \r\n 分割字符串

2023-12-21

我想在 bash 中拆分包含 \r\n 的字符串,但回车符和 \n 会出现问题。谁能给我关于不同 IFS 的提示?我也尝试过 IFS=' |\' 。

input:

projects.google.tests.inbox.document_01\r\nprojects.google.tests.inbox.document_02\r\nprojects.google.tests.inbox.global_02

Code:

IFS=$'\r'
inputData="projects.google.tests.inbox.document_01\r\nprojects.google.tests.inbox.document_02\r\nprojects.google.tests.inbox.global_02"
for line1 in ${inputData}; do
    line2=`echo "${line1}"`
    echo ${line2} //Expected one by one entry
done

预期的:

projects.google.tests.inbox.document_01
projects.google.tests.inbox.document_02
projects.google.tests.inbox.global_02

inputData=$'projects.google.tests.inbox.document_01\r\nprojects.google.tests.inbox.document_02\r\nprojects.google.tests.inbox.global_02'
while IFS= read -r line; do
  line=${line%$'\r'}
  echo "$line"
done <<<"$inputData"

Note:

  • 该字符串定义为string=$'foo\r\n', not string="foo\r\n"。后者不会将实际的 CRLF 序列放入变量中。看类似 ANSI C 的字符串 http://wiki.bash-hackers.org/syntax/quoting#ansi_c_like_strings在 bash-hackers' wiki 上了解此语法的描述。
  • ${line%$'\r'} is a 参数扩展 http://wiki.bash-hackers.org/syntax/pe它从变量内容的末尾去除文字回车符line,如果存在的话。
  • 逐行读取输入流(此处使用)的实践在Bash 常见问题解答#1 http://mywiki.wooledge.org/BashFAQ/001。与迭代不同for,它不会尝试将您的数据扩展为全局数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 bash 中使用 IFS 使用 \r\n 分割字符串 的相关文章

随机推荐

  • Objective C:Posing 可以在 ios 上使用吗?

    我正在尝试为一个 ios 项目实现摆姿势 场景 在运行时定义控制器类 https stackoverflow com questions 29424934 defining class of controller at run time 我
  • 如何将基于页面的 PHP 应用程序转换为 MVC?

    一段时间以来 我一直在努力解决如何使用 MVC 框架重新编码基于页面的 PHP 应用程序 仅作为背景 我必须将应用程序移至 MVC 因为我的老板正在让我这样做 不管怎样 我已经坐下来 打印出了目录结构 然后我开始尝试计划如何将这些页面转换为
  • 向 Keras 中 Flatten() 层的输出添加新功能

    我正在做图像分类 首先 我将图像输入 Keras 中的 CNN 模型 我想在 keras 中 Flatten 层的输出中添加新功能 然后将其输入到密集层 我该如何为其编写代码 基本上我对图像使用卷积 最后我想添加其他功能 例如年龄性别等 m
  • 如何使用lua打乱单词的字母

    我在 PHP 中使用了这个 str shuffle 函数 和梅卡this api https i stack imgur com papuI png我需要做同样的想法 将字母打乱 字母之间有空格 但使用 lua 对于使用电报机器人 我进行了
  • scrollIntoView 在所有浏览器中都有效吗?

    Does scrollIntoView 适用于所有浏览器 如果没有的话有没有jQuery选择 是的 但用户体验很差 正如 9bits 指出的那样 这长期以来一直是所有主流浏览器都支持 https developer mozilla org
  • 当 C 说全局变量的启动值为零时,是否也意味着结构成员?指针的初始值是多少?

    当 C 说全局 static 变量的启动值为零时 是否也意味着结构成员 全局 静态 指针的初始值是多少 无效的 是的 这是由 C99 6 7 8p10 指定的 如果一个对象具有自动 存储期限未初始化 明确地 它的值是 不定 如果一个对象有
  • 打印 char 数组的一部分

    So char someCArray something 我想从 某物 中打印出 ethin 您可以使用printf精度说明符 include
  • 在循环中替换 Pandas 数据框中的值

    我正在尝试循环遍历 pandas 数据框 并在某些列中的值满足某些条件时替换它们 我意识到一般有更直接的方法可以做到这一点 但在我的具体示例中 我需要一个循环 因为一行的结果可能取决于前一行 下面是一个可重现的错误示例 当我尝试替换文本时
  • `.map(f)` 和 `.map(|x| f(x))` 有什么区别?

    做的时候沙沙声standard library types iterators2 rs https github com rust lang rustlings blob main exercises standard library ty
  • 替换SWF中的字符串[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们已经为大型 Flash 项目的不同客户修改了数十个 SWF 版本 现在必须替换每个副本中脚本中嵌入的
  • 将 RMagick 与 Ocra 捆绑在一起

    我正在尝试使用 Ocra 创建 Ruby 脚本的可移植版本 该脚本取决于rmagick这还需要安装 ImageMagick 生成的可执行文件在我的计算机上可以运行 但在其他所有计算机上都会失败 除非最终用户手动安装 ImageMagick
  • 取消引用双指针

    我有一段代码片段 我无法理解它是如何工作的 因为有一行执行了双重取消引用 代码如下所示 void afunction int x x malloc 2 sizeof int x 12 x 1 13 int main int v 10 afu
  • 比较 MSE 损失和交叉熵损失的收敛性

    For a very simple classification problem where I have a target vector 0 0 0 0 and a prediction vector 0 0 1 0 2 1 would
  • 强制编译器遵循 C99 标准

    当我在我的项目上编码时 我发现我已经使用了一段时间的匿名结构实际上只在 C11 中可用 而不是我想要针对的标准 C99 中可用 给出以下代码 struct data int a struct int b int c int main str
  • 将 INFO 和 ERROR 日志与 java.util.logging 分开

    我正在为 Java 应用程序配置日志记录 我的目标是两个日志 一个用于所有消息 另一个仅用于高于特定级别的消息 该应用程序使用java util logging 类 我按原样使用它 所以我只能通过logging properties fil
  • 经典 ASP - SQL Server 不存在或访问被拒绝

    我正在尝试连接到本地主机上的 SQL Server Express DB 但收到以下错误消息 用于 SQL Server 的 Microsoft OLE DB 提供程序 0x80004005 DBNETLIB ConnectionOpen
  • 注入时 Jquery 对话框无法正确显示

    我正在制作一个 Chrome 扩展 并尝试在用户单击页面上的元素时注入 Jquery 当我尝试通过 Jquery 创建对话框时 var box document createElement div box id box box title
  • 如何从 vue 中的所有子复选框组件中收集选定的复选框?

    我有一个表 其中行元素全部由子组件填充 每个子组件中都有一个复选框 现在我想立即获取所有选中的复选框 我可以使用首选项发出作为两种方式绑定并更新父级上的数组或对象 但我想知道是否有更好的方法 这是模板部分的简短示例 table thead
  • 如何设置 IIS 以使应用程序保持活动状态?

    我认为我的网络应用程序会在一段时间后关闭 如果我大约 5 分钟内没有使用该应用程序 它会返回一个新会话 会话超时设置为 720 分钟 因此这不会成为问题 可能是应用程序池中的设置或类似的设置 我认为这是某种资源管理 我使用的是IIS 7 0
  • 在 bash 中使用 IFS 使用 \r\n 分割字符串

    我想在 bash 中拆分包含 r n 的字符串 但回车符和 n 会出现问题 谁能给我关于不同 IFS 的提示 我也尝试过 IFS input projects google tests inbox document 01 r nprojec