Originally posted by HAT at 2008-6-1 02:04 AM:
这个正则表达式写的很正确,在Unix下可以得到正确结果,但是在cmd下调用sed.exe却得不到任何结果。
C:\1>type 1.1.txt
abc
a啊
啊
啊a
我
C:\1>sed -n "/^.*$/p" 1.1.txt
abc
a啊
ccc
可以用
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by HAT at 2008-6-1 02:04 AM:
这个正则表达式写的很正确,在Unix下可以得到正确结果,但是在cmd下调用sed.exe却得不到任何结果。
| 评分人 | 分数 | 时间 |
|---|---|---|
| plp626 | +7 | 2008-06-03 07:12 |
Originally posted by sylovanas at 2008-6-2 09:34 PM:
C:\1>type 1.1.txt
abc
a啊
啊
啊a
我
C:\1>sed -n "/^.*$/p" 1.1.txt
abc
a啊
ccc
可以用
sed -n "/^*$/p" a.txtOriginally posted by HAT at 2008-6-3 09:33 AM:
不加那个点也不对,见26楼描述。
sed -e "/^*$/!d" file
sed -r -e "/^+$/!d" file
F:\tptst>np file
F:\tptst>type file
adfadfadfasdfasdfadf
4trqefddafKKLFDK:D
JJDJEXDSLDD
da13431431
o9590415143
ABCDE
BDEFG
BBDkkDDlda
;adfazxx13!#$#
F:\tptst>sed -e "/^*$/!d" file
adfadfadfasdfasdfadf
JJDJEXDSLDD
ABCDE
BDEFG
BBDkkDDlda
F:\tptst>sed -r -e "/^+$/!d" file
adfadfadfasdfasdfadf
JJDJEXDSLDD
ABCDE
BDEFG
BBDkkDDlda
Originally posted by HAT at 2008-6-3 11:45 AM:
关键不是空行的问题,而是能否匹配纯英文行的问题。
你的代码能正确匹配吗?
F:\tptst>type file
adfadfadfasdfasdfadf
4trqefddafKKLFDK:D
JJDJEXDSLDD
我你他
a你我
他abcd你我
人民的常b
da13431431
o9590415143
ABCDE
BDEFG
BBDkkDDlda
;adfazxx13!#$#
F:\tptst>sed -e "/^*$/!d" file
adfadfadfasdfasdfadf
JJDJEXDSLDD
ABCDE
BDEFG
BBDkkDDlda
F:\tptst>sed -r -e "/^+$/!d" file
adfadfadfasdfasdfadf
JJDJEXDSLDD
ABCDE
BDEFG
BBDkkDDlda
F:\tptst>sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
C:\Test>sed --version
GNU sed version 3.02
Copyright (C) 1998 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
Originally posted by HAT at 2008-6-1 01:34:
13,如果某行多于10个字符,只显示每一行的前10个字符
我知道这样可以查找出多余10个字符的行,但是不知道怎样只显示前10个字符。
sed -n &qu ...
:查找出多余10个字符的行 ,但只显示后面的10个字符
sed -n "/^.\{10\}/s/\(^.\{10\}\)\(.\{10\}\).*/\2/p" a.txt
:查找出多余10个字符的行,但只显示前10个字符
sed -n "/^.\{10\}/s/\(^.\{10\}\).*/\1/p" a.txt
| 评分人 | 分数 | 时间 |
|---|---|---|
| moniuming | +8 | 2008-10-03 13:39 |
sed "10q" a.txt sed -n "1,10p" a.txt sed "1,10!d" a.txt sed "11,$d" a.txt sed "$!d" a.txt sed -n "$p" a.txt sed "s/;/\n/g;s/,/\n/g" a.txt sed "20,25!d" a.txt sed -n "20,25p" a.txt sed -n "p;n" a.txt sed -n "n;p" a.txt sed "s/爱你/【爱你】/g;s/恨你/【恨你】/g" a.txt sed "s// /g" a.txt sed -n "/^*$/p" a.txt sed -n "/^*$/p" a.txt sed -n "/\|/p" a.txt sed "N;s/\n/ /" a.txt sed ":a;$!N;s/\n我/我/;ta;P;D" a.txt sed "s/^ *//;s/ *$//" a.txt sed "s/^/echo/" a.txt sed "s/。$//" a.txt sed "s/\(^.\{10\}\).*/\1/" a.txt sed ":a;//s/^.\{,19\}$/ &/;ta" a.txt sed "1!G;h;$!d" a.txt sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//" a.txt sed "n;n;n;n;G" a.txt sed -n "G;s/\n/&&/;/^\(.*\n\).*\n\1/{P;d};s/\n//;h" a.txt
@echo off
for /f "delims=" %%a in (a.txt) do (
if /i defined %%a (echo %%a) else set %%a=a
)
sed -e "s/^.\{,10\}$/& /;s/\(^.\{11\}\) *$/\1/;s`\(^.....\)\(.....\)\(.*\)`\1/*\2*/\3`" a.txt
@echo off
for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
sed "s/^/000/w tmp_.txt" "%%a"
move tmp_.txt "%%a"
)
@echo off
for /f %%i in ('sed -n "$=" a.txt') do set number=%%i
:loop
set /a num+=1
set /a n=(%num%-1)*100+1
set /a m=100*%num%
sed "%n%,%m%w a_%num%.txt" a.txt
if %m% LSS %number% goto :loop
@echo off
for /f %%i in ('sed -n "$=" a.txt') do set num=%%i
:loop
set /a n+=1,count+=1
sed -n %n%p a.txt
set /a m=10+%n%
sed -n %m%p a.txt
if %count% EQU 10 set /a n+=10 & set count=0
if %n% LSS %num% goto :loop
pause
@echo off
for /f %%i in ('sed -n "$=" a.txt') do set num=%%i
for /f %%i in ('sed -n "$=" b.txt') do set num2=%%i
if %num% LSS %num2% set num=%num2%
:loop
set /a n+=1
sed -n %n%p b.txt>>ba_tmp.txt
sed -n %n%p a.txt>>ba_tmp.txt
if %n% LSS %num% goto :loop
move ba_tmp.txt b.txt
Originally posted by ngd at 2008-6-19 01:59 PM:
9,如果当前行是以"我"字开头,怎么将它合并到上一行?
sed ":a;$!N;s/\n我/我/;ta;P;D" a.txt
aaa
bbb
我ccc
ddd