标题: [问题求助] [已解决]sed命令怎么替换字符(含中文)? [打印本页]
作者: JooKin 时间: 2012-4-30 18:23 标题: [已解决]sed命令怎么替换字符(含中文)?
x.txt如下:- abc你我他efg
- 123456ABCD
- 你我他987654
- abc你好sdf
- 如果abc
复制代码
1,把中文“你我他”替换成“世界”,替换失败:- C:\Users\Administrator\Desktop\temp>sed "s/你我他/世界/g" x.txt
- abc世界efg
- 123456ABCD
- sed: 无法将 10 个项目写入 stdout:Arg list too long
复制代码
2,把“abc”替换成“世界”,也失败:- C:\Users\Administrator\Desktop\temp>sed "s/abc/世界/g" x.txt
- sed: 无法将 13 个项目写入 stdout:Invalid argument
复制代码
请问我是缺少什么参数才会出现这种问题吗?还是说我写法有错?我的sed版本是最新的sed-4.2.1
作者: hfg1977 时间: 2012-4-30 20:49
两条命令没有任何错误.
不是 'sed' 也不是语法问题.
另sed的错误提示不可能使用中文,你不会用的什么汉化版吧?
介意换英文正版.
作者: gawk 时间: 2012-4-30 21:41
- sed -i "s/你我他/世界/g" x.txt
复制代码
作者: JooKin 时间: 2012-4-30 22:17
回复 2# hfg1977
真的是这样的,我的sed是GNU官方完整安装版本-sed-4.2.1-setup.exe 安装完就是中文的:- C:\Users\Administrator\Desktop>sed --h
- 用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...
-
- -n, --quiet, --silent
- 取消自动打印模式空间
- -e 脚本, --expression=脚本
- 添加“脚本”到程序的运行列表
- -f 脚本文件, --file=脚本文件
- 添加“脚本文件”到程序的运行列表
- -i[扩展名], --in-place[=扩展名]
- 直接修改文件(如果指定扩展名就备份文件)
- -b, --binary
- 以二进制方式打开文件 (回车加换行不做特殊处理)
- -c, --copy
- use copy instead of rename when shuffling files in -i mode
- (avoids change of input file ownership)
- -l N, --line-length=N
- 指定“l”命令的换行期望长度
- --posix
- 关闭所有 GNU 扩展
- -r, --regexp-extended
- 在脚本中使用扩展正则表达式
- -s, --separate
- 将输入文件视为各个独立的文件而不是一个长的连续输入
- -u, --unbuffered
- 从输入文件读取最少的数据,更频繁的刷新输出
- --help 打印帮助并退出
- --version 输出版本信息并退出
-
- 如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为
- sed脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准
- 输入读取数据。
- GNU sed home page: <http://www.gnu.org/software/sed/>.
- General help using GNU software: <http://www.gnu.org/gethelp/>.
- E-mail bug reports to: <bug-gnu-utils@gnu.org>.
- Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
复制代码
作者: JooKin 时间: 2012-4-30 22:24
回复 3# gawk
指定-i参数确实可以,但是会在当前目录生成文件名是“seduGhUJf”的没有扩展名的临时文件,而且每运行一次生成的文件名都不一样,“sedrB7cVb”,“sed5fexNj” ………… 但是x.txt内容确实正确替换了。请问什么原因?
作者: gawk 时间: 2012-4-30 22:27
回复 5# JooKin
sed版本问题
作者: JooKin 时间: 2012-4-30 22:33
回复 6# gawk
应该不会啊 我是官方下载的 而且是最新的 没理由出现这种低级的BUG
作者: gawk 时间: 2012-5-1 06:34
回复 7# JooKin
谁说这是bug了
人家就是这样设计的
试试别的版本吧:
http://www.bathome.net/thread-13353-1-1.html
http://www.bathome.net/thread-15605-1-1.html
作者: JooKin 时间: 2012-5-1 11:21
回复 8# gawk
好吧你赢了多谢
作者: yangeren 时间: 2012-5-1 23:01
echo %dirName%&md %dirName%
作者: yangeren 时间: 2012-5-1 23:04
echo %dirName%&md %dirName%
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |