linux - AIX 的等效 sed linux 命令
问题描述
我有这种类型的数据:
xxxx aaaaaaaaaaaaaaaaaaa
xxxx bbbbbbbbbbbbbbbbbbb
xxxx ccccccccccccccccccc
xxxx ddddddddddddddddddd
xxxx eeeeeeeeeeeeeeeeeee
我想要这个输出:
xxxx aaaaaaaaaaaaaaaaaaa
'' bbbbbbbbbbbbbbbbbbb
'' ccccccccccccccccccc
'' ddddddddddddddddddd
'' eeeeeeeeeeeeeeeeeee
在linux上我可以这样做:
sed "1 ! s|xxxx|''|" data.txt
但是当我在 AIX 上尝试这个时:
sed: 0602-403 1 ! s|xxx|''| is not a recognized function.
你可以帮帮我吗 ?
解决方案
来自POSIX 规范sed
(添加了重点):
函数前面可以有一个“!” 字符,在这种情况下,如果地址不选择模式空间,则应应用该功能。
<blank>
'!' 之前应接受零个或多个字符 特点。未指定<blank>
字符是否可以跟随'!' 字符,符合要求的应用程序不得跟随“!” 字符与<blank>
字符。
我怀疑你遇到了这个问题。GNUsed
允许之间有空格,AIXsed
可能不允许。
改为使用sed "1!s|xxxx|''|" data.txt
,我敢打赌它会起作用。
不过,我确实认为sed "2,$ s/xxxx/''/" data.txt
评论中的建议更清楚。
推荐阅读
- escaping - 如何转义 pug 的关键字,比如当 #{when}
- flutter - 颤振错误:无法确定任务':app:compileDebugJavaWithJavac'的依赖关系
- php - 如果 php://input 同时接收到 webhook 会发生什么?
- flutter - 如何清除所有路由以减少内存量?
- sql - SQL - 将 COUNT 与别名简写一起使用
- python - 搜索谷歌并自动获取图像
- python - Pytest-mock - 尝试模拟整个类时未使用 new_callable 类
- java - 为什么要对 DefaultListModel 和 list.getModel() 进行向下转换?
- math - 无论未编号的门如何,上述三种状态中的哪一种将导致 F 为 1?证明你的答案
- python - 不兼容的形状:[217,1] 与 [480,1]