使用 sed 将前两个空格替换为逗号

2023-12-20

我有一个空格分隔的文件,每行包含可变数量的条目。我想用逗号替换前两个空格,以创建一个包含三列的逗号分隔文件。

这是我的输入:

a b  1 2 3 3 2 1
c d  44 55 66 2355
line http://google.com 100 200 300
ef jh  77 88 99
z y 2 3 33

这是我想要的输出:

a,b,1 2 3 3 2 1
c,d,44 55 66 2355
line,http://google.com,100 200 300
ef,jh,77 88 99
z,y,2 3 33

我正在尝试在 sed 命令中使用 perl 正则表达式,但我无法完全让它工作。首先,我尝试捕获一个单词,然后是一个空格,然后是另一个单词,但这仅适用于第 1、2 和 5 行:

$ cat test | sed -r 's/(\w)\s+(\w)\s+/\1,\2,/'
a,b,1 2 3 3 2 1
c,d,44 55 66 2355
line http://google.com 100 200 300
ef jh  77 88 99
z,y,2 3 33

我还尝试捕获空白、一个单词,然后捕获更多空白,但这给了我相同的结果:

$ cat test | sed -r 's/\s+(\w)\s+/,\1,/'
a,b,1 2 3 3 2 1
c,d,44 55 66 2355
line http://google.com 100 200 300
ef jh  77 88 99
z,y,2 3 33

我也尝试用 .? 这样做通配符,但这对第 4 行做了一些有趣的事情。

$ cat test | sed -r 's/\s+(.?)\s+/,\1,/'
a,b,1 2 3 3 2 1
c,d,44 55 66 2355
line http://google.com 100 200 300
ef jh,,77 88 99
z,y,2 3 33

任何帮助深表感谢!


这个怎么样:

sed -e 's/\s\+/,/' | sed -e 's/\s\+/,/'

使用单个 sed 命令可能可以实现,但这肯定是一种简单的方法:)

我的输出:

a,b,1 2 3 3 2 1
c,d,44 55 66 2355
line,http://google.com,100 200 300
ef,jh,77 88 99
z,y,2 3 33
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sed 将前两个空格替换为逗号 的相关文章

  • 如何在 Perl 中获取用户输入而不等待输入?

    我正在尝试用 Perl 制作一个交互式 shell 脚本 我能找到的唯一用户输入如下 name
  • 在 JavaScript 中查找内容是否具有当前网站 url

    我正在使用 TinyMCE 作为编辑器 我想执行移动验证和 URL 验证 什么是不允许的 描述中不允许输入手机号码 仅允许在描述框中输入相同的应用程序 URL 如果用户输入其他网站网址 则会引发验证错误 我使用下面的代码来验证移动设备和 u
  • 带文本板的多行正则表达式

    我不知道如何使文本板执行扩展多行的正则表达式 我尝试使用 perl 语法与 myregex m 和 m 作为修饰符 但这不起作用 我在编辑器中看不到复选框或任何内容来告诉它执行多行操作 有人有主意吗 这是完全可能的 而且简单 你只需使用 n
  • Eclipse Java 格式化程序的命令行 [重复]

    这个问题在这里已经有答案了 我只是想知道是否有 eclipse java 文件格式化程序的命令行工具 或者如果有一个 ant 任务来执行它 在我的场景中 有 2 个 java 格式化程序 一个用于 android 格式化程序 另一个是我们的
  • Bash 脚本在 for 循环中使用 sed 和变量?

    我正在尝试编写一个 bash 脚本 该脚本需要一些变量 然后使用 grep 对给定文件搜索进行查找 替换 以获取包含该字符串的文件列表 我认为我遇到的问题是在 sed 中看到变量我不确定它可能是什么 if searchFiles a old
  • C++字符串解析思路

    我有另一个程序的输出 它更适合人类可读而不是机器可读 但无论如何我都会解析它 没什么太复杂的 然而 我想知道在 C 中执行此操作的最佳方法是什么 这更像是一个 一般实践 类型的问题 我研究了 Boost Spirit 甚至让它发挥了一些作用
  • 用数组值替换字符串中的模板

    我有一个字符串 可以有简单的模板 我有一个包含替换值的数组 目前我正在用循环来做 但我想把它改成preg replace 你能帮助我吗 Example values array id gt 120 name gt Jim string He
  • 为什么 Javascript 不支持lookbehind断言?

    最近我意识到 因有些尴尬 正则表达式lookbehind assertions were not可能在Javascript 这种看似常见的断言不存在的 事实 原因是什么 我意识到也许有其他方法可以实现同样的目标 https stackove
  • 在android上使用正则表达式验证字符串

    我希望我的字符串不包含 and 我用这个代码 private static boolean IsMatch String s String pattern try Pattern patt Pattern compile pattern M
  • Python:通过xpath获取html表数据

    我觉得从 html 表中提取数据非常困难 并且需要为每个站点进行自定义构建 我非常希望在这里被证明是错误的 是否有一种简单的 Pythonic 方法可以通过使用感兴趣的表的 url 和 xpath 从网站中提取字符串和数字 Example
  • 使用正则表达式检查至少 8 位数字的字符串

    我的正则表达式如下 d s 12 这将允许数字 空格 但我想确保字符串至少包含 8 位数字 一些允许的字符串如下 1323 24 233 24243434 43 43435 4554345 434 它不应该允许这样的字符串 1213 232
  • sed:用匹配的模式替换第 n 个单词?

    我有一个具有以下特征的文本文件 每行至少有三个由空格分隔的 单词 单词 可以是任何字符或字符串 我在一些行中附加了一些注释 并提出了对原始单词进行更改的初步建议 现在想使用 sed 为我进行这些更改 因此 为了提供更清晰的图片 我的文件如下
  • 带有转义字符的 JavaCC 引用

    标记可以包含转义字符的带引号的字符串的常用方法是什么 这里有些例子 1 this is good 2 this is good 3 this is good 4 this is bad 5 this is bad 6 this is bad
  • sed:用下划线替换引号内的空格

    我有输入 例如 来自ifconfig run0 scan在 OpenBSD 上 它有一些用空格分隔的字段 但某些字段本身包含空格 幸运的是 包含空格的此类字段总是用引号引起来 我需要区分引号内的空格和分隔符空格 这个想法是用下划线替换引号内
  • 使用正则表达式验证输入字符串是否为 0-255 之间的数字

    我在将输入字符串与正则表达式匹配时遇到问题 我想验证输入数字在 0 255 之间并且长度最多应为 3 个字符 代码工作正常 但当我输入 000000 至任意长度时 显示 true 而不是 false 这是我的代码 String IP 000
  • 用于从 Open3.popen3 标准输出中提取值的正则表达式

    如何获取外部命令的输出并从中提取值 我有这样的事情 stdin stdout stderr wait thr Open3 popen3 path foobar configfile if exit 0 wait thr value to s
  • “read”和“sysread”有什么区别?

    read http perldoc perl org functions read html and sysread http perldoc perl org functions sysread html有非常相似的文档 两者有何区别 A
  • Python 按照层次结构按多个分隔符分割字符串

    我只想根据多个分隔符 例如 and 和 按顺序分割字符串一次 例子 121 34 adsfd gt 121 34 adsfd dsfsd and adfd gt dsfsd adfd dsfsd adfd gt dsfsd adfd dsf
  • 为什么在线解析器似乎停在正则表达式处?

    我一直想知道为什么似乎没有任何解析器 比如说 BNF http en wikipedia org wiki Backus E2 80 93Naur Form 其行为类似于各种库中的正则表达式 当然 还有类似的事情ANTLR http www
  • 为什么 "asdf".replace(/.*/g, "x") == "xx" ?

    我偶然发现了一个令人惊讶的 对我来说 事实 console log asdf replace g x Why two替代品 似乎任何没有换行符的非空字符串都会产生此模式的两个替换 使用替换函数 我可以看到第一个替换是整个字符串 第二个替换是

随机推荐

  • 在webapp中获取当前的svn版本

    在 java web 应用程序中显示 使用修订号的最佳方式是什么 我们只使用 ant 来构建我们的 war 存档 没有构建服务器之类的 我希望有某种 if ref 可以写入资源文件中 但这仅在提交相关文件时更新 我在全球范围内都需要它 你会
  • 如何搜索包含 JSON 数组的 SQL 列

    我有一个包含单个 JSON 数组的 SQL 列 names Joe Fred Sue 给定一个搜索字符串 如何使用 SQL 在名称数组中搜索匹配项 我正在使用 SQL 2016 并查看了 JSON QUERY 但不知道如何在 JSON 数组
  • 嵌套 For 循环转换为嵌套 Promise

    我遇到了一个问题 我的程序仅在一次迭代时结束nameList 而且我不太确定不合逻辑的代码在哪里 全局给出 var require underscore var nameList Bob Susie var jsonDict 我复杂的嵌套从
  • Sublime Text 2 的 Goto Anything 中的这些数字是什么

    我已经用谷歌搜索了很多 但不幸的是 当你Ctrl P Goto Anything 在 Sublime Text 2 中 Ideas 据传闻 指示您的输入描述该文件的可能性有多大 随着比赛质量的提高而提高 在屏幕截图中输入 应用程序 应该会产
  • SQLSTATE[22003]:数值超出范围:1264 超出范围值

    我的 WAMP 服务器的十进制是十进制 5 2 我的查询异常 SQLSTATE 22003 数值超出范围 1264 第 1 行的列 converted 1000ml 的值超出范围 SQL 插入inventory databanks prod
  • Pycharm代码重新格式化:按运算符对齐行

    在 Jetbrains Pycharm 专业版 2016 1 中 是否有一种方法 内置或第三方 修改 python 中的代码样式以通过运算符 特别是赋值运算符 对齐连续行 例如 我想 var1 5 variable2 10 varbl3 1
  • utf8_bin 与 utf_unicode_ci

    我的餐桌网站 Website Name column name Google Facebook Twitter Orkut Frype Skype Yahoo Wikipedia 我使用 utf8 bin 排序规则 然后我在网站中搜索维基百
  • PHP 内置服务器和 .htaccess mod 重写

    PHP 的内置服务器不使用 htaccess 吗 我认为这是有道理的 因为它不依赖 Apache 不管怎样 是否可以告诉服务器使用这些文件 它可以处理 URL 重写吗 我的框架中有一些依赖这些文件的项目 APPLICATION ENV de
  • Python 类方法中类似 C 的静态变量

    经过 20 年的 C 经验之后 我正在努力学习 Python 现在我想要一个方法 类内的函数 它有自己的 静态 变量 而不是静态变量class多变的 也许伪代码示例可以更好地说明我想要的东西 class dummy staticmethod
  • 在 Sencha Touch 2.2.1 中运行应用程序示例时出现 JavaScript 错误

    我开始在 Windows 8 上使用最新的 Sencha Touch 2 2 1 开发移动应用程序 我做了以下步骤http docs sencha com touch 2 2 1 guide getting started http doc
  • ObjectDataSource 找不到非泛型方法

    我有这个 ASP NET 代码
  • 如何限制 NSTextField 文本长度并始终保持大写?

    需要有一个 NSTextField 其文本限制最多为 4 个字符 并且始终以大写形式显示 但无法找到实现这一目标的好方法 我尝试通过与验证方法的绑定来完成此操作 但只有当控件失去第一响应者时才会调用验证 这不好 我暂时通过观察文本字段上的通
  • 当显示键盘时,所有内容都会被推起,并且出现错误

    我有以下代码 class MyHomePageState extends State override Widget build BuildContext context This method is rerun every time se
  • Perl 使用/需要绝对路径?

    如果我有一个 pm文件 有什么办法可以use它 而不把它放在我的 INC小路 我认为这在我的特定用例中会更清晰 比使用相对路径或将此目录添加到更清晰 INC 编辑 澄清 我希望避免遍历每个项目的必要性 INC 而是直接指定我感兴趣的文件 例
  • 为什么 Visual Studio 2010 中的字体模糊?

    我最近切换到 Visual Studio 2010 我一直使用好的旧像素化字体 因为我发现它更容易阅读 一个像素是黑色 另一个是白色 完美 在 Visual Studio 2005 中 我使用位图字体 在VS 2010中似乎必须使用TTF
  • 在 R 中使用美国各州数据绘制(填充颜色)地图

    我有以下数据要绘制在美国各州地图上 x data frame state x77 Income 如何将这些绘制为地图上各州的颜色填充 我可以绘制地图 map state boundary TRUE col colorRampPalette
  • JSF 异常部署到 FireFly,标记名为 inputFile null handler-class

    我正在尝试学习 JSF 但在部署任何项目时遇到问题 我已经安装了以下内容 Eclipse 开普勒版本 2用于 Eclipse 的 JBoss 工具野蝇8Maven 3 2 1Java JDK 8莫哈拉2 2 6 我创建并下载示例项目的 JS
  • BigQuery,如何在where子句中使用别名?

    我有这个小查询 BigQuery 无法识别别名 maxdate 我试图返回表 但仅限于最后一个日期 WITH maxdate AS SELECT MAX DATE SETTLEMENTDATE FROM biengine 252003 ae
  • 为什么这个 lambda 可以流式传输?

    令我惊讶的是下面的代码打印1 std cout lt lt const char arg return arg 0 s lt lt std endl 有人可以解释一下吗 它转换为函数指针 然后通过它转换为布尔值 void foo std c
  • 使用 sed 将前两个空格替换为逗号

    我有一个空格分隔的文件 每行包含可变数量的条目 我想用逗号替换前两个空格 以创建一个包含三列的逗号分隔文件 这是我的输入 a b 1 2 3 3 2 1 c d 44 55 66 2355 line http google com 100