【发布时间】:2020-07-01 16:16:48
【问题描述】:
我有这种类型的数据:
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.
你能帮帮我吗?
【问题讨论】:
-
如果你使用
sed '1 ! s|xxxx|'\'\''|' data.txt,它是否有效?!在双引号内可能会导致问题,但不确定 -
这很奇怪;
!是sed的 POSIX 规范的一部分,所以它应该可以正常工作。使用|而不是/也应该没问题。1、!和s周围的间距无关紧要。我会尝试所有这些变体;我会查看 AIXsed手册页。历史替换看起来并不令人困惑。错误消息几乎准确地反映了您显示的内容 -xxx与xxxx存在差异,但这是在您的转录中还是在机器上?有人建议安装 GNUsed;如果这是一个选项,它可能在短期内是最简单的...... -
错误信息很奇怪 -
0602-403来自哪里? @JonathanLeffler 谢谢,很高兴知道。 -
AIX 有一个类似
0602-403的消息标识符,可用于查找有关特定错误的更多信息——这在AIX 上很正常,@KamilCuk。它有助于处理 I18N/L10N 等问题。