linux执行命令段错误,在SUSE linux上执行sed命令报“段错误是什么原因,怎样解决...

操作系统版本信息:

linux:~ # uname -a

Linux linux 2.6.5-7.308-bigsmp #1 SMP Mon Dec 10 11:36:40 UTC 2007 i686 i686 i386 GNU/Linux

linux:~ # cat /proc/version

Linux version 2.6.5-7.308-bigsmp (geeko@buildhost) (gcc version 3.3.3 (SuSE Linux)) #1 SMP Mon Dec 10 11:36:40 UTC 2007

linux:~ # lsb_release -a

LSB Version: core-2.0-noarch:core-3.0-noarch:core-2.0-ia32:core-3.0-ia32:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch

Distributor ID: SUSE LINUX

Description: SUSE LINUX Enterprise Server 9 (i586)

Release: 9

Codename: n/a

以 root 用户执行下面的命令之一:

sed 's/connect  *system/--connect system/ig' abc.sql > 123.sql

sed -i 's/connect  *system/--connect system/ig' abc.sql

命令执行时报“段错误”,观察生成的文件发现内容不全,应该是执行到一半就报错退出了。

如果换用其它用户就不报错。

|

报操作的具体过程和报错发上来一下

|

好奇怪的问题

普通用户不报错 root用户就报错

你试着把sed内的特殊符号前面加试试 比如你的* -

|

尝试建一个小文件,然后用SED做一下简单的操作会报错吗

|

例如

touch test

echo "aabb" >test

sed -i 's/bb/ecc/g' test

cat test

看结果是什么,如果没问题再写

sed -i 's/.*e/connect        system/g' test

cat test

看是什么状况,如果没问题再写

sed -i 's/connect  *system/--connect system/ig' test

cat test

另外就是你可以对比一下看结果中是进行到那行就出错,看源文件中出错的那行是什么内容

|

1.你的问题现在能重现吗?

2.是你现在能操作的机器吗?

3.你说当时SED写法忘了,意思是就是那个写法才出错还是随便一种写法才出现?

4.可以在你的问题环境里做一下我上面说的东西吗?

|

莫非 原来的人把sed用别的版本的sed命令替换了?

你看看root目录下的.bashrc或者.bash_profile确认一下 root用户是否用别的命令替代了sed

(这中可能性小,纯属瞎猜)

|

你说的大文件一直都是你那个abc.sql,有试过别的大文件吗?

还有就是,确定一下它在执行到那一行出的错,看那行是什么内容

|

现在SED的RPM版本是4.1.5,升级一下试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值