作者tools241 (Mike)
看板EZsoft
标题[推荐]windows下安装 UnxUtils-仿unix/linux命令
时间Tue Feb 25 06:30:39 2014
软体名称:
UnxUtils
软体资讯:
Windows
软体功能:
仿 unix/linux 命令
软体特色:
在windows的 "命令提示字元" 模式之下使用 "仿 unix/linux 命令"
下载连结:
http://sourceforge.net/projects/unxutils/
推荐原因:
在Win环境可充分利用到 "linux的字串处理能力" .
谁适合用:
1.常在Win环境设计 "批次档" 而又熟悉linux者有更多命令可供选择.
2.有大量文字档想一次替换文字中的 "某些相似性的字串".
使用感想:
* 范例1:将 小说.txt 分割成3等份左右:
REM 将 小说.txt 分割成3等份左右, split3.bat 内容如下 :
REM 利用 仿unix命令 :
REM 1.计算行数用法 wc.exe --help
REM 2.改字串用法 sed.exe --help
REM 3.计算用法 expr.exe --help
REM 4.分割用法 split.exe --help
REM 计算 expr 行数 / 3 的值, 存到 tmp.txt
echo @echo off > tmp.bat
wc -l 小说.txt | sed -e "s: *\([0-9][0-9]*\).*:expr \1 / 3:" >> tmp.bat
call tmp.bat > tmp.txt
REM 些生 split.exe -行数 input.txt output_
sed -e "s:\(.*\):split.exe -\1 小说.txt output_:" < tmp.txt > tmp.bat
call tmp.bat
move output_aa 小说_1.txt
move output_ab 小说_2.txt
move output_ac 小说_3.txt
del tmp.txt
del tmp.bat
* 注解:
sed.exe -e "编辑指令" < 输入档 > 输出档
编辑指令中有 "s/找字串一/改成字串二/" 或 "s:找字串一:改成字串二:" ,
其中 s 表示 "替代"
找字串一 http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG] , 其中
. 表示 "任意字", * 表示 "前面的字出现任意次数", 因此
.* 表示 "任意字出现任意次数"
\ 表示 将其後的字的意义 "取消 或 另做不同的解释" , \/ 表示 / ,
\([0-9][0-9]*\) 表示将 \( \) 的内容存到字串二的 \1 中 ,
[0-9] 表示一个字为范围介於0-9之间的数字,
[0-9]* 表示数字重复出现任意次(含零次) ,
\. 表示一个字 .
[jJ] 表示一个字内容为 j 或 J
* 范例2:假设有一个档案 c:\input.txt 内容如下:
<a href=
http://aaa.xxx.com/mdf/1.jpg>
<a href="
http://bbb.yyy.com/123g/52.jpG">
<a href="
http://www.abcdef.com/d3nj6-R/903.JPg">
要将存放的网址全部替换, 最後产生 c:\output.txt 内容如下:
<a href="
http://www.ppp.com.tw/1.JPG">
<a href="
http://www.ppp.com.tw/52.JPG">
<a href="
http://www.ppp.com.tw/903.JPG">
则利用以下命令便可编辑出所要的结果:
sed.exe -e "s/http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG]/http:\/\/www.ppp.com.tw\/\1.JPG/" < c:\input.txt > c:\output.txt
执行完便产生 c:\output.txt 内容为:
<a href=
http://www.ppp.com.tw/1.JPG>
<a href="
http://www.ppp.com.tw/52.JPG">
<a href="
http://www.ppp.com.tw/903.JPG">
* 注解:
sed.exe -e "编辑指令" < 输入档 > 输出档
编辑指令中有 "s/找字串一/改成字串二/" 或 "s:找字串一:改成字串二:" ,
其中 s 表示 "替代"
找字串一 http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG] , 其中
. 表示 "任意字", * 表示 "前面的字出现任意次数", 因此
.* 表示 "任意字出现任意次数"
\ 表示 将其後的字的意义 "取消 或 另做不同的解释" , \/ 表示 / ,
\([0-9][0-9]*\) 表示将 \( \) 的内容存到字串二的 \1 中 ,
[0-9] 表示一个字为范围介於0-9之间的数字,
[0-9]* 表示数字重复出现任意次(含零次) ,
\. 表示一个字 .
[jJ] 表示一个字内容为 j 或 J
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.231.73.222
1F:→ mshx:我觉得cygwin的完成度比较高,套件也多太多了 02/25 11:22
2F:→ mshx:另外根据前几天的某篇,我预期你会回一堆推文... 02/25 11:23
3F:→ rockmanx52:因为他在浏览器版黑了才跑来这边啊... 02/25 12:41
5F:→ tools241:在浏览器看版本人乐当旁观者,但请尊重他人"媒体近用权"! 02/25 14:28
6F:→ tools241:既然有空何不去帮忙回答?有人想看水管限IP影片,有人则LAG 02/25 14:37
7F:→ tools241:本人发表的内容都是在帮大家省时间,但各位不一定要接受. 02/25 14:47
8F:→ brli7848:打着媒体近用权的大旗做出强迫广告的情事? 02/25 18:48
9F:→ tools241:本篇有广告?另一篇24元件可参考 "库存页面" 不必进blog. 02/25 19:50
10F:→ tools241:在浏览器看版有没有人常贴自已blog网址? 02/25 19:51
11F:→ tools241:为何各位没意见? 本人blog近400篇文章,不必靠此增人气. 02/25 20:12
12F:→ tools241:本人id很容易记?还须打广告?用他人id的推文您便很支持? 02/25 20:20