在unix中使用sed反转四个字母的长度

2024-03-16

如何反转四个长度的字母sed?

例如:

the year was 1815.

反向至:

the raey was 5181.

这是我的尝试:

cat filename | sed's/\([a-z]*\) *\([a-z]*\)/\2, \1/'

但它并没有按照我的预期工作。


不确定是否可以在所有情况下使用 GNU sed 来完成此操作。如果_不会立即出现在四个字母单词之前/之后,您可以使用

sed -E 's/\b([a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])\b/\4\3\2\1/gi'

\b是单词边界,单词定义是任何字母、数字或下划线字符。所以\b将确保仅匹配整个单词而不是单词的一部分

$ echo 'the year was 1815.' | sed -E 's/\b([a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])\b/\4\3\2\1/gi'
the raey was 5181.
$ echo 'two time five three six good' | sed -E 's/\b([a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])\b/\4\3\2\1/gi'
two emit evif three six doog

$ # but won't work if there are underscores around the words
$ echo '_good food' | sed -E 's/\b([a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])\b/\4\3\2\1/gi'
_good doof


具有环视支持的工具适用于所有情况

$ echo '_good food' | perl -pe 's/(?<![a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])([a-z0-9])(?!=[a-z0-9])/$4$3$2$1/gi'
_doog doof

(?<![a-z0-9]) and (?!=[a-z0-9])分别是负lookbehind和负lookahead

可以缩短为

perl -pe 's/(?<![a-z0-9])[a-z0-9]{4}(?!=[a-z0-9])/reverse $&/gie'

它使用e将 Perl 代码放置在替换部分的修饰符。这种形式适合轻松改变要反转的单词长度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在unix中使用sed反转四个字母的长度 的相关文章

  • 别名在 Bash 脚本中不起作用[重复]

    这个问题在这里已经有答案了 我有一个可执行文件command sh bin bash alias my command echo ok my command 我的终端是bash 当我像这样运行时 command sh 效果很好 当我像这样运
  • Bash - 在 perl 正则表达式中使用变量以及匹配组

    这是我在 stackoverflow 上的第一篇文章 如果我错过了一些重要的内容 请原谅我 我目前遇到以下问题 目标是根据我准备的文件列表动态替换端口号find 这些文件中的所有端口均以数字 4 开头 有 5 位数字 现在是棘手的部分 我只
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 类unix系统中的python和python3命令有什么区别?

    我通读了每个命令的描述 但每个命令的描述都是完全相同的 所以我不明白这两个命令在类 Unix 系统中的工作方式有何不同 谁能解释其中的区别吗 Python3命令的引入是因为python命令指向了python2 从那时起 Python3 已成
  • 如何将长选项与 Bash getopts 内置一起使用?

    我正在尝试解析 tempBash getopts 的选项 我这样调用我的脚本 myscript temp foo bar someFile 这是我用来解析选项的代码 while getopts temp shots o option do
  • 在 shell 脚本中连接命令字符串

    我正在维护一个现有的 shell 脚本 它将命令分配给 shell 脚本中的变量 例如 MY COMMAND bin command dosomething 然后接下来 它通过执行以下操作将 参数 传递给 MY COMMAND MY ARG
  • 为什么减法返回 - 符号

    我对简单的减法有疑问 但我不明白出了什么问题 我的代码 start date s N cut b1 13 Treatment end date s N cut b1 13 delta expr end start echo delta de
  • Python3 http.server:将日志保存到文件中

    我使用Python3 6编写了一个简单的HTTP服务器来重定向所有请求 我写的文件可以找到here https github com kmahyyg learn py3 blob master antiscanhttp py 我可以在 Ub
  • 如何剪切(1) 个驼峰字?

    Bash 中有没有一种简单的方法可以将驼峰式单词拆分为其组成词 例如 我想将 aCertainCamelCasedWord 拆分为 a certain Camel Cased Word 并能够选择我感兴趣的那些字段 当单词分隔符是下划线时
  • apt-get install tzdata 非交互式

    当我尝试 apt get install y tzdata 将显示用于选择时区的命令行选项 我试图在脚本中使用它来进行一些设置 如何在没有用户输入的情况下使 apt get 运行 我知道重新配置 tzdata 我可以做 echo Ameri
  • 如何通过 shell 脚本确定网页是否存在?

    我正在尝试制作一个程序 可以将一系列漫画扫描转换为一个 pdf 文件 并且我不想尝试下载图片来确定我是否有正确的网址 是否有一个 shell 脚本命令可以用来检查网页是否存在 在 NIX 下 您可以使用curl发出一个简单的HEAD要求 H
  • 规范化 solaris 上的路径名

    在 GNU 系统上我只会使用readlink f SOME PATH 但 Solaris 没有 readlink 我更喜欢在 bash 中运行良好的程序 但如果需要的话其他程序也可以 Edit 到目前为止 我想到的最好的方法是使用 cd 和
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • 在 Fish Shell 中设置导出

    我安装了多个版本的 PHP 对于我的正常开发 我总是使用通过自制程序安装的 PHP 5 5 x 在鱼壳里 which php php version gt usr local bin php gt PHP 5 5 8 cli built J
  • 在bash中,是否有相当于“错误消息”的东西

    在 perl 中 您可以使用错误消息退出die some msg bash 中是否有等效的单个命令 现在 我正在使用命令来实现这一点 echo some msg exit 1 你可以很容易地自己推出 die echo 1 gt 2 exit
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • 跨机器同步 Git 存储库,无需推送

    我有三台计算机 它们的所有应用程序都应具有相同的设置 由于它们都有使用这些设置运行的进程 所以我never我想推送 相反我希望它们每个人都跟踪另外两个 并且仅在我登录时才拉取 经过几天的研究后 我发现的所有文章似乎都假设您希望先推送到中央存
  • 命名空间“System.Data”中不存在类型或命名空间名称“SQLite”(是否缺少程序集引用?)

    是的 我已将 System Data Sqlite dll 添加到我的项目 VS2012 中 是的 我已经添加了参考 是的 我已经仔细检查了引用是否已创建 引用属性 gt 路径正确 是的 我用过 Google Bing 不 我不知道为什么我
  • 2>&1 在 PowerShell 中意味着什么

    我有以下脚本 if timeout ne null var timeout 2 gt 1 gt logDir logName else var2 gt 1 gt logDir logName 我很好奇什么2 gt 1是 或者 它代表什么 我
  • 同级别CSS

    如果我有 3 个 div 在同一级别 而不是一个在另一个 如何在不使用 ID 和类的情况下将鼠标悬停在另一个 div 上时更改另一个 div 的颜色 我想要这样的东西 div div div div div div 和CSS 1 hover
  • firebug (1.10.1) 表明 javascript 不限于 firefox (13.0) 中的单个线程

    今天在 Firefox 中调试一些客户端 JavaScript 时 我遇到了一些我觉得很奇怪而且有点令人不安的事情 另外 在使用 IE VS2010 调试相同的脚本时 我无法复制此行为 我创建了一个简单的示例 html 文档来说明我所看到的
  • 如何使用 DateTime 类在 PHP 中进行时区转换?

    我正在尝试将当前时间转换为 UTC 并将 UTC 转换为当前时区 这是我所做的 schedule date new DateTime triggerOn new DateTimeZone UTC triggerOn schedule dat
  • 卸载 gcc

    我想通过终端卸载我的 gcc 当我打字时 gcc version 输出是 gcc Ubuntu 5 4 0 6ubuntu1 16 04 4 5 4 0 20160609 Copyright C 2015 Free Software Fou
  • 使用外部模块的类型增强模块声明

    Context 我正在为 NativeScript 制作一个 React 渲染器 即允许您使用 React 声明 NativeScript UI 的库 并且我想为其提供类型 React 的类型已经完全支持 React DOM 即自始至 终都
  • 如何将 sha1() 密码转换为 FOSUserBundle?

    我有一个遗留应用程序 可以使用以下命令对密码进行加密sha1 功能 无盐 现在该网站正在转换为 Symfony2 和 FOSUserBundle 我如何将它们转移到新数据库 我有同样的问题 只需像 iamdto 所解释的那样覆盖编码器 ap
  • 在 ReSharper 中禁用 C# 6.0 支持

    在使用ReSharper时 它建议 为此项目启用C 6 0支持 我愚蠢地点击了它 现在正如广告所宣传的那样 它为我提供了 C 6 0 的建议 然后给了我错误 因为我在这个项目中没有使用 C 6 0 如何禁用 C 6 0 支持 使其恢复到之前
  • 如何在同一个项目中拥有 iOS 应用程序和 OS X 应用程序?

    我见过这个问题 https stackoverflow com questions 4872541 is it possible to have both an ios app and mac app in the same project
  • 可以安装 EGit:缺少要求:Git Team Provider Core

    所以我将 Coldfusion Builder 与 Ecplise 结合使用 我正在尝试在其中安装 EGit 以便我可以执行 Git 操作 我唯一能安装的是 EGit 0 11 1http download ecplise org rele
  • 如何使用 HTML 输入文件类型限制文件类型?

    如何使用 HTML 输入文件类型限制文件类型 我有这个
  • 编程错误:在 django 中同时使用 order_by 和 unique 时

    我有一个如下所示的模型 class ProductScore models Model client models ForeignKey User created models DateTimeField default datetime
  • Django 复合/嵌套/子表单?

    我正在寻找这些 Django 的更新版本超级形式 http code djangoproject com ticket 3706 似乎无法让它在 Django 1 2 中工作 特别是 我希望它能够与 ModelForms 一起使用 我的用例
  • 存储和查询气象数据大数据集的更好方法是什么

    我正在寻找一种便捷的方式来存储和查询大量气象数据 几TB 有关问题中间数据类型的更多信息 之前我一直在寻找 MongoDB 的方向 我自己之前的很多项目都使用过它 而且处理起来很舒服 但最近我发现了HDF5 http en wikipedi
  • 下拉菜单 - jQuery/CSS

    我正在做的下拉菜单有问题 请检查此屏幕截图 http img215 imageshack us img215 8449 hovermenu png http img215 imageshack us img215 8449 hovermen
  • JBoss类加载问题

    我有一个在 tomcat 上完美运行的 Web 应用程序 war 文件 现在我需要让这个相同的应用程序在 JBoss 4 2 2 上运行 同一 JBoss 实例上运行着其他应用程序 问题是当我尝试在 JBoss 上部署 war 应用程序时
  • Java 中是否存在可变的 URL/URI 对象?

    我有一个字符串形式的 URL 我希望对其进行各种修改 具体来说 如果查询字符串中的值已存在 我需要修改它们 如果不存在 则创建它们 在我看来 应该已经有一个现有的类 我可以使用我的 URL 作为字符串来构造该类 该类会将 URL 拆分为其组
  • 在unix中使用sed反转四个字母的长度

    如何反转四个长度的字母sed 例如 the year was 1815 反向至 the raey was 5181 这是我的尝试 cat filename sed s a z a z 2 1 但它并没有按照我的预期工作 不确定是否可以在所有