搜索
写经验 领红包
 > 游戏

widows文本处理工具(widows文本效果怎么设置)

在生活中,很多人可能想了解和弄清楚效率为王:windows下使用cygwin提升文本处理效率的相关问题?那么关于windows文本处理工具的答案我来给大家详细解答下。

windows文本处理工具(windows文本效果怎么设置)

对于文本的处理,Linux有许多工具(awk、grep等)可以进行文本处理,在windows下可以借助UE、notepad++这样增强的编辑器进行等效的处理,如果能在windows下像在Linux下直接操作文本的话就不需要在编辑器中手工处理了,而cygwin就是这样一个得力的工具,一句话cygwin让你在windows上可以执行Linux命令。

工作中有样一种场景,已知部署SQL文件install.sql内容如下

delete t1 where t1.col1=&39; and t1.col2=&39;;

insert into t1(col1,col2,col3) values(&39;,&39;,&39;);

insert into t1(col1,col2,col3) values(&39;,&39;,&39;);

insert into t1(col1,col2,col3) values(&39;,&39;,&39;);

delete t2 where t2.col1=&39;;

insert into t2(col1,col2,col3) values(&39;,&39;,&39;);

insert into t2(col1,col2,col3) values(&39;,&39;,&39;);

insert into t2(col1,col2,col3) values(&39;,&39;,&39;);

此文件为多个表的初始化数据,格式也比较一致,如果有数据先删除然后插入初始化数据。现在需要

(1) 因为要更改表,需要将所有变更的表名得到并写入tableName.txt,然后备份程序会自动备份

手工处理就不在说了,现在说一下如何使用cygwin处理,打开cygwin执行如下命令

cd F:\测试

cat install.sql | grep delete | awk &39; > tableName.txt

install语句中表名在delete关键字所在的行,且是每1行的第2个单词,所以使用grep过滤出来delete所在的行,并使用awk过滤出来第2个单词,然后重定向到tableName.txt中即可。对于sql比较多的install.sql效率更为明显且不容易出错。

(2) 因为对表做了变更,所以需要回滚语句以便对执行的语句进行回滚。回滚时简单执行install.sql中的delete语句即可,所以需要将所有的delete语句提取出来并保存到rollbak.sql中。在cygwin中执行如下命令

cat install.sql | grep delete > rollback.sql

使用grep过滤出delete语句然后重定向到rollback.sql中即可

(3) 除了要得到备份的表名、回滚语句,还需要检查语句以检查部署数据是否正确,对应上面install.sql所对应的check.sql为

select count(1) as &34; from t1 where t1.col1=&39; and t1.col2=&39;;

select count(1) as &34; from t2 where t2.col1=&39;;

此语句实际上是由delete语句演变而来,即拿到delete.txt文件中将所有的delete关键字改为select count(1) as &34;就得到了check.txt。select count(1) as字符串部分可以由普通编辑器替换完成,&34;怎么得到呢?因为不同的数据表install.sql中插入的行数是不相同的。

cat install.sql | egrep &34; | awk &39; | uniq -c | grep -v delete | awk &39;

此语句看起来复杂,实际上逻辑比较简单,先使用egrep过滤出delete或insert所在的行,这样空行就会被过滤掉,然后打印每1行的第1个单词,即delete或insert,然后使用uniq进行计算出insert及delete的个数,计算出来后插入的行数是由insert决定的,所以使用grep的-v选项过滤掉delete统计数,最后即为每个insert的行数(第1列),又因为除了显示行数还会显示统计的关键字insert(第2列),所以最后一个awk过滤出想要的数字。

温馨提示:通过以上关于效率为王:windows下使用cygwin提升文本处理效率内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。