sed:用下划线替换引号内的空格

2024-06-26

我有输入(例如,来自ifconfig run0 scan在 OpenBSD 上),它有一些用空格分隔的字段,但某些字段本身包含空格(幸运的是,包含空格的此类字段总是用引号引起来)。

我需要区分引号内的空格和分隔符空格。这个想法是用下划线替换引号内的空格。

样本数据:

%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3
nwid Websense chan 6 bssid 00:22:7f:xx:xx:xx 59dB 54M short_preamble,short_slottime
nwid ZyXEL chan 8 bssid cc:5d:4e:xx:xx:xx 5dB 54M privacy,short_slottime
nwid "myTouch 4G Hotspot" chan 11 bssid d8:b3:77:xx:xx:xx 49dB 54M privacy,short_slottime

这最终没有按照我想要的方式处理,因为我还没有用下划线替换引号内的空格:

%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3 |\
    cut -s -d ' ' -f 2,4,6,7,8 | sort -n -k4
"myTouch Hotspot" 11 bssid d8:b3:77:xx:xx:xx
ZyXEL 8 cc:5d:4e:xx:xx:xx 5dB 54M
Websense 6 00:22:7f:xx:xx:xx 59dB 54M

For a sed-唯一的解决方案(我不一定提倡),尝试:

echo 'a b "c d e" f g "h i"' |\
sed ':a;s/^\(\([^"]*"[^"]*"[^"]*\)*[^"]*"[^"]*\) /\1_/;ta'
a b "c_d_e" f g "h_i"

翻译:

  • 从该行的开头开始。
  • 寻找图案junk"junk",重复零次或多次,其中junk没有引号,后面是junk"junk space.
  • 将最后的空格替换为_.
  • 如果成功,则跳回到开头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sed:用下划线替换引号内的空格 的相关文章

  • 如何使用 sed 交换两行?

    有谁知道如何更换line a with line b and line b with line a使用 sed 编辑器在文本文件中 我可以看到如何用保留空间中的一行替换模式空间中的一行 即 Paco x or Paco g 但是如果我想采取
  • 十六进制到十进制转换(带 sed 的管道)

    之后如何使用管道将十六进制值转换为十进制值sed 从 小端 到 大端 的转换 dec value echo dede0a01 sed s 4 3 2 1 g Update 这工作正常 endi echo dede0a01 sed s 4 3
  • awk 反转行和单词

    我对编程语言之类的东西很陌生 所以我必须用 awk 反转文件中的所有行以及这些行中的所有单词并将其打印出来 要反转的 File1 aa bb cc foo 做为 File1 的输出打印应该是这样的 就像 foo 一样 cc bb aa 我在
  • 使用 tac 和 sed 反转文件

    我有一个用例 我需要搜索并替换文件中最后一次出现的字符串并将更改写回文件 下面的案例是该用例的简化版本 我正在尝试反转该文件 进行一些更改 再次将其反转并写入该文件 我为此尝试了以下代码片段 tac test sed s a b sed i
  • 如何 grep 文件中不区分大小写的字符串?

    我有一个文件file1其结尾为Success OR success 我想要grep为了这个词success以一种不区分大小写的方式 我写了以下命令 但它区分大小写 cat file1 grep success 我怎样才能改变它 以便它ret
  • AWK 中多行的匹配正则表达式。 && 操作员?

    我不确定 运算符在正则表达式中是否有效 我想做的是匹配一行 使其以数字开头并具有字母 a 下一行以数字开头并具有字母 b 并且下一行 字母 c 该 abc 序列将用作开始读取文件的唯一标识符 这就是我在 awk 中想要的东西 0 9 a n
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • 如何比较两个文件中的多列并在找​​到匹配时从另一列检索相应的值

    我有两个文件 File1 txt 和 File2 txt 我需要将 File1 中的三列 1 2 和 3 分别与 File2 的 4 5 和 6 进行比较 如果找到匹配项 我想从 File2 的第 2 列中检索相应的值并将其粘贴到输出中 T
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 如何用awk删除以“C”开头的行?

    如何使用以下命令从文本文件中删除以 C 开头的行awk 有什么建议请 如果数据在文件中data txt then With awk awk C data txt With grep grep v C data txt 显示开头不带 C 的所
  • 替换多个文件中的多个字符串

    我有一个包含正则表达式列表和替换文字字符串的文件 格式如下 OLD REGEXP 1 NEW STRING 1 OLD REGEXP 2 NEW STRING 2 我想替换所有匹配的字符串OLD REGEXP X with NEW STRI
  • 如何使用 awk 将 mac addr 转换为 int?

    Input 192 168 0 1 aa bb cc 00 11 22 192 168 0 1 aa 00 bb 11 cc 22 192 168 10 11 2a bb cc 20 11 22 192 168 10 11 aa 02 bb
  • 第三行的总和并相应地划分行

    我有一个如下的文件 其中有 n 行 我想计算其总和 基于第三列 并将行相应地分布在 3 个不同的文件中 基于每个文件的总和 例如 如果我们将所有第三列值相加 则总数为 516 如果我们将其除以 3 则为 172 所以我想向文件添加一行 使其
  • 通过匹配模式将字符串替换为另一个文本文件中的行

    我有一个带有对应键 gt 值的文件 sort keyFile txt head ENSMUSG00000000001 ENSMUSG00000000001 Gnai3 ENSMUSG00000000003 ENSMUSG0000000000
  • 如何在unix中对ls输出进行编号?

    我正在尝试编写一个格式为 id file absolute path 的文件 该文件基本上递归地列出文件夹中的所有文件 并为每个文件提供一个标识符 如 1 2 3 4 我可以使用以下命令递归地获取文件的绝对路径 ls d 1 PWD 但是
  • 使用 sed 更改 /etc/fstab

    我想改 etc fstab在脚本内 我想添加acl属性到根分区 One fstab行条目如下所示 UUID 730aee20 52b7 4920 75cd d0d995ef2445 ext3 errors remount ro 0 1 我想
  • awk 在Linux终端中输出类似表格或类似Excel的列?

    我做了一个长管子 最后是 awk print 5 t t 3 t 4 在 Linux 终端中 这些列用选项卡填充 第一列条目具有不同数量的字符 因此第二列结果并不完全垂直 怎样才能让桌子看起来更完美呢 尝试将结果通过管道传输到列 t awk
  • 如何在多行而不是单行输出上打印 Linux 组名称

    我尝试过 getent group 命令 id Gn user 和一些 sed 组合 但我认为我无法实现 因此向其他程序员伸出援手 我希望能够打印此 groups abc123输出 abc123 devops 构建测试设计 预期输出 gro
  • 提取子字符串与字符串中第一次出现的数字之间的模式

    以下是文件的内容 xxx component1 1 0 2 2acd314 xc linux x86 64 Release devel r xxx component2 3 0 1 fg3sdhd xc linux x86 64 Relea

随机推荐

  • 如何显示浏览器中发出的 API 请求的 symfony 分析器?

    我正在使用 Symfony2 FOSRest 捆绑包开发 REST api 我想知道是否有任何方法可以在开发模式下调用api app dev php 从浏览器 对应于Accept text html application xhtml xm
  • express.js less 编译器:无法工作

    app js app use express compiler src dirname public enable less app use express static dirname public 在我的玉观中 link rel sty
  • 如何在 Linux centos 上安装 SWIG [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想在我的 Linux 服务器上安装 SWIG 来测试一些东西 怎么才能安装那个 你有几个选择 最简单的方法是检查 CentOS 存储库中的二进制包
  • Python 字符串格式 - 类型错误 - 格式字符串参数不足

    那么这个字符串有什么问题呢 我无法弄清楚为什么它说格式字符串没有足够的参数 我是 Python 新手 只是想弄清楚 编辑 这与建议的其他问题不同 另一个正在尝试做一些我什至没有涉及的疯狂数组事情 我只需要了解元组的基本概念以及字符串格式化的
  • 如何防止 gson 将整数转换为双精度数

    我的 json 中有整数 但我不希望 gson 将它们转换为双精度数 以下不起作用 Test public void keepsIntsAsIs String json id 1 quantity 2 name apple id 3 qua
  • 在 R/ggplot2 中将字符串转换为函数参数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在开发一个闪亮的应用程序 用户可以选择可以使用 ggplot2 绘制哪些变量 但是我完全不确定将字符串 即要绘制的变量的名称 转换为合适的函数参数的最佳方法 考虑以下非常人为的 有效的示例 df lt dat
  • 是否有 .NET API 可以返回给定路径的等效扩展路径字符串?

    在 NTFS 中 我可以在路径前加上前缀 字符序列 表示它是超过 260 个字符限制的路径 因此 文件系统将正确解释路径并避免引发PathTooLongException see http msdn microsoft com en us
  • 如何使用 C 中的 Banker's Rounding 将 double 舍入为 int

    我想编写一个函数 使用银行家的舍入方法将双精度数舍入为整数 将一半舍入为偶数 http en wikipedia org wiki Rounding Round half to even http en wikipedia org wiki
  • AsyncTask加载图像RecyclerView

    我正在尝试创建一个与该应用程序类似的应用程序 一个在回收视图中包含一些图像和描述 卡片视图 的应用程序 https lh5 ggpht com At pHbZqdzlgmAqY0jbiztDYIAts1wOYWGTOHibmFHuq8CFA
  • 如何使用 DirectoryStream.Filter 过滤隐藏文件

    我正在尝试使用 NIO 类过滤隐藏文件 当我在 Windows 10 上运行随附的代码时 我得到以下输出 Files c Documents and Settings c PerfLogs c Program Files c Program
  • OpenGL ES 2.0 只绘制一次对象

    首先我要说的是 很抱歉今天问了这么多问题 所以 我有一个圈子的课程 我有一个包含 3 个圆形实例的数组列表 每个实例都有不同的 x 坐标来绘制 不管出于什么原因 OpenGL ES 2 0 只绘制其中之一 尽管我调用所有这些来绘制 我检查了
  • 是否可以检测Android应用程序卸载?

    我的应用程序使用 Google 的 C2DM 推送通知 来通知用户朋友的新活动 一旦他们安装了应用程序 我就会向 C2DM 服务器注册设备并存储用户的电话号码 所以我知道用户正在使用我的应用程序 我可以向他 她发送推送通知 但是 如果用户卸
  • PHP:将“’”字符从 ISO-8859-1 转换为 UTF-8 时出现问题

    我在使用 PHP 将 ISO 8859 1 数据库内容转换为 UTF 8 时遇到一些问题 我正在运行以下代码来测试 Connect to a latin1 charset database and retrieve Georgia O Ke
  • 如何在聚合框架中按位置修改数组中的值

    假设有一个简单的文档 array a b c d 如何修改second值在聚合 With update这很简单 db collection updateOne set array 1 B gives array a B c d 在聚合框架中
  • Apache ReWrite 规则是否排除单个文件或文件类型?

    您能帮助我制定一条 Apache 规则来排除特定文件名或文件类型吗 这是我目前的规则 RewriteRule blog L RewriteRule crossdomain xml L Based on first response Rewr
  • AT命令用于接收自动短信通知

    我现在有 2 个 gprs gsm 调制解调器 其中一个是华为 另一个是 prolink 调制解调器 我通过 AT 命令发送或接收短信没有问题 但是 我尝试使用此命令 AT CNMI 接收自动通知 但无法使其正常工作 但当我尝试此命令时 调
  • 使用 Bash 显示进度指示器(旋转器)[重复]

    这个问题在这里已经有答案了 使用仅 bash 的脚本 如何提供 bash 进度指示器 例如 当我从 bash 运行命令时 当该命令正在执行时 让用户知道某些事情仍在发生 在这个使用 SCP 的示例中 我演示了如何获取进程 ID pid 然后
  • 无法在单 SPA 应用程序中启动微前端应用程序

    我在尝试在 Single SPA 应用程序中启动子应用程序时遇到错误 基本上 我正在尝试开发一种 util 应用程序 Single SPA 中的子应用程序 其中包含 Sockjs Stomp client 等 我删除了节点模块和 packa
  • 导入父目录进行简单测试

    我从上到下搜索了这个网站 但还没有找到一种方法来真正实现我在 Python3x 中想要的东西 这是一个简单的玩具应用程序 所以我想我可以在断言中编写一些简单的测试用例 然后就到此为止了 它确实会生成报告等 因此我想确保我的代码在更改时不会做
  • sed:用下划线替换引号内的空格

    我有输入 例如 来自ifconfig run0 scan在 OpenBSD 上 它有一些用空格分隔的字段 但某些字段本身包含空格 幸运的是 包含空格的此类字段总是用引号引起来 我需要区分引号内的空格和分隔符空格 这个想法是用下划线替换引号内