多行文本转成一行的实现方法

这篇具有很好参考价值的文章主要介绍了多行文本转成一行的实现方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哈喽大家好,我是咸鱼

不知道你们有没有遇到过下面的情况,以我为例

有时候我会收到批量操作服务器的需求,且我会拿到一个服务器 ip 列表,它是一个多行的形式,如下所示

# ip 列表
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6

但我使用 saltstack 进行批量操作时,我需要将上面的多行 ip 转成一行的形式才能执行 saltstack 命令

192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6

# saltstack 批量操作命令例子 
salt -L '192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6' cmd.run 'ls -l'

如果是少量 ip,直接手动操作就行;如果 ip 数量特别多,手动转换的话就特别的麻烦了

下面我将介绍两个比较常见的多行文本转一行的实现方法,如果大家有更好的方法的话,欢迎大家积极讨论参与!

shell 命令实现

tr 命令

tr 命令用于转换或删除文本中的字符,我们可以通过 tr --help 来查看它的帮助文档

下面是一些关于 tr 命令的例子

#替换字符
echo "hello" | tr 'o' 'a'   # 输出结果:hella

#删除字符
echo "hello" | tr -d 'l'   # 输出结果:heo

#压缩连续字符:
echo "hello" | tr -s 'l'   # 输出结果:helo

知道了这个命令的大概用法之后,我们就可以通过 tr 命令来实现多行转一行

#命令如下:
cat <<EOF | tr '\n' ','
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
EOF

上面的命令可以分为两个部分,第一部分如下:

#第一部分
cat <<EOF 
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
EOF
  • 使用 cat 命令和 <<EOF 结构,它指示将下面的文本内容作为输入传递给 cat 命令
  • EOF:终止符,用于标识输入的结束

EOF在Linux中是一种约定的标记,用于指示输入的结束,它在不同的上下文中有不同的用途

在Here Document结构中,EOF用于标记输入文本的开始和结束;在文件输入中,EOF用于表示输入的结束

有关 Here Document 内容:Here Document and Here String | Baeldung on Linux

上面命令输出如下:
多行文本转成一行的实现方法

接下来我们来看第二部分

#第二部分
tr '\n' ','

使用 tr 命令,它将 '\n' (换行符)替换为逗号 ','tr 命令用于字符转换,'\n' 是被替换的字符,',' 是替换的字符

第一部分和第二部分通过管道符 | 连接起来,表示将 cat 命令的输出传递给 tr 命令处理

我们来看下输出结果
多行文本转成一行的实现方法

Notepad++ 实现

这个方法适用于在 Windows 系统,用 Notepad 实现

把多行 IP 复制到 Notepad 中,然后选中内容——>输入查找目标和替换内容——>点击全部替换(注意下面的查找模式换成正则表达式)

多行文本转成一行的实现方法

  • \r\n 表示换行符,(.+) 表示匹配任意字符,且至少匹配一次
  • \1 表示引用查找到的文本,, 表示逗号

需要注意的是,替换换行符之前你得先知道文本内容中的换行符是 Windows 格式(\r\n) 还是 UNIX 格式(\n

多行文本转成一行的实现方法文章来源地址https://www.toymoban.com/news/detail-541956.html

到了这里,关于多行文本转成一行的实现方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 行转列--将多行数据转成多行多列的Table结构

    21年做的一个功能,涉及到将行数据转化成列数据。边查边做,一点一点的尝试着做好。当时感觉有点吃力。完成之后本想记录,但一直拖延至今。最近再次接手与这个功能相关的业务,整理了之前写的代码,趁此机会记录下来。 界面中是一个三级结构:L1级【Test Sample】,

    2024年02月05日
    浏览(54)
  • 超实用, 用CSS实现多行文本溢出

    用CSS实现文本溢出省略 在网页开发过程中,经常会遇到文本内容太长而导致界面布局不美观的情况。此时,我们需要对文本进行省略处理,以达到理想的布局效果。本文将介绍一个使用CSS实现文本溢出省略的方法。 方法一:使用text-overflow属性 text-overflow属性是CSS3新增的一个

    2024年02月09日
    浏览(45)
  • 多行SQL转成单行SQL

    如下图所示 将以上多行SQL转成单行SQL 正则表达式如下 结果如下 灵活使用,也未必只能使用Sublime Text 提供了一个在线工具

    2024年01月17日
    浏览(49)
  • 使用overflow实现多行文本的溢出部分处理

    测试结果

    2024年02月12日
    浏览(42)
  • matlab将一个矩阵所有行的元素合并成一列/一行

    reshape(M, m, n)将矩阵M重排成m * n 反过来,若想 将一行元素拆分成几行, 直接用reshape是不行的,如图:a矩阵拆分成b之后现在想再组回去,数字顺序和原来不同,具体操作如下

    2024年02月11日
    浏览(59)
  • js实现一行半文本的截取

    最近遇到一个需求是要在第二行的中间截取文本,因为在后面得贴一个图标,所以这种情况用常规的css截取文本有点难处理。于是在上网查阅后发现了几个方法:第一种是用伪元素加定位,把.;11..盖在文字的上面;第二种就是用js来实现了。 首先贴下常规的css截取文本的代

    2024年02月10日
    浏览(36)
  • CSS中如何实现多行文本溢出省略号效果?

    前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一

    2024年02月10日
    浏览(53)
  • flex布局一行三个,显示多行

    效果: 代码

    2024年02月11日
    浏览(39)
  • CSS实现单行或者多行文本溢出隐藏并且显示省略号

    如果文字超出父元素指定宽度,文字会自动换行,而连续不间断数字和英文字母(没有其他字符)不会自动换行; 详细步骤: 第一步(不换行):white-space:nowrop;(对于连续的数字或者英文字母可省略) 第二步(溢出隐藏)overflow:hidden; 第三步(文本溢出显示省略号)text-overf

    2024年02月16日
    浏览(54)
  • linux sed命令删除一行/多行_sed删除第一行/linux删除文件某一行

    linux常用命令(9):sed命令(编辑/替换/删除文本) linux sed命令删除一行/多行_sed删除第一行/linux删除文件某一行 linux sed批量修改替换文件中的内容/sed特殊字符 本文主要讲解如何删除txt文件中的某一行内容,sed命令更多详细内容参考《linux常用命令(9):sed命令(编辑/替换/删除文本

    2024年01月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包