联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
:: 12,如果某行的行尾是以"。"结尾,就删除"。" sed -e "s/。$//" a.txt | more
:: 13,如果某行多于10个字符,只显示每一行的前10个字符 sed -n "/........../{s/\(..........\).*/\1/p}" a.txt | more
1 sed -n -e "1,10p;$p" file ::1 用-n禁止输出,这样打印1到10和末行 2 sed -e "s/;/\n/g;s/,/\n/g;" file ::2 简单替换 3 sed -e "20,25!d" file ::3 同你第一个,20到25不清空 4 sed -e "s/.*//g;N;" file ::清空ps并读入下一行,偶行输出 sed -e "1!{s/.*//g;N}" file ::同上,只是跳过第一行,奇行输出 (想下面时出了好点的解决方法: sed -e "p;N;d" file ::直接打印一行,多读一行,删,奇行输出 sed -e "1d;p;N;d" file ::偶行输出,每一行直接删掉 ) 5、 简单替换,不重复了 6、 仍是简单替换,不说了,只是注意转义 7、 这个有点难度,目前还不知道怎么在正则里面表达汉字,同求解 8、 sed -e "N;s/\n//" file ::N读取下一行,替换掉换行符 9、 sed -e "1{x;d};${x;p;x;b};/^5/{x;G;s/\n//;x;b};x" file ::暂时用5代表“我”,用中文的总是不正常,原因未明,期待答案 10 sed -e "s/^\s*//;s/\s*$//;" file ::\s代表空字符,一般是空格和TAB 11、12略
sed -n "/^.\{10\}/p" a.txt
sed '$!N;s/\n/ /' a.txt
Originally posted by 26933062 at 2008-5-31 11:45 PM: 显示纯英文行 sed -n "/^[a-z A-Z]*$/p" a.txt
C:\test>type a.txt abc a啊 啊 啊a 我 ccc C:\test>sed -n "/^[a-z A-Z]*$/p" a.txt C:\test>
Originally posted by zhengruijian at 2008-5-31 11:34 PM: 太好了. 我来说一个. 前提是对一个文件夹下的N个TXT文件进行处理,对每一个TXT里的每一行前面都加入000
sed "s/^/000/" *.txt
sed -n "1!G;h;$p" a.txt
sed "n;n;n;n;G;" a.txt