使用Cygwin在WIN系统下处理文本常用命令
Posted 朽木自雕也
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Cygwin在WIN系统下处理文本常用命令相关的知识,希望对你有一定的参考价值。
1.打开Cygwin,把需要处理的文本复制你的安装目录例如:D:\\cygwin\\home\\Administrator
使用 ls命令查看根目录文件
2.现在我们就可以对1.txt文本进行操作,
3.我常用到命令
【Sort排序功能】
1.指定列正向排序
对文本第一列排序 默认TAB分割
Sort -k 1 1.txt -o 输出.txt
对文本第二列排序 :分割
Sort -t: -k 2 1.txt -o 输出.txt
2.指定列逆向排序
对文本第一列排序 默认TAB分割
Sort -r -k 1 1.txt -o 输出.txt
对文本第二列排序 自定义分割符号“:”
Sort -r -t: -k 2 1.txt -o 输出.txt
3.指定列排序并去重
对文本第一列排序 默认TAB分割
Sort -u -r -k 1 1.txt -o 输出.txt
对文本第二列排序 自定义分割符号“:”
Sort -u -r -t: -k 2 1.txt -o 输出.txt
1.通用正向排序
sort 1.txt -o 输出.txt
2.通用逆向排序
sort -r 1.txt -o 输出.txt
3.数字正向排序
sort -n 1.txt -o 输出.txt
4.排序并去重
sort -u 1.txt -o 输出.txt
【Uniq统计】
1.统计文本出现次数
详解:排序之后删除了重复行,同时在行首位置输出该行重复的次数
#sort testfile | uniq -c
1 friend
3 hello
2 world
2.只输出重复的行,并输出重复次数
#sort testfile | uniq -d -c
3 hello
2 world
3.仅显示不重复的行
sort testfile | uniq -u
【split分割】
1.按行分割
分割成10行 文件名5位数字开头
split -l 10 -d -a 5 file
2.按MB分割
分割成10MB大小 文件名5位数字开头
split -b 10m -d -a 5 file
【Cat 合并文件】
Cat命令详解:http://www.cnblogs.com/perfy/archive/2012/07/23/2605550.html
1.合并多个文件
Cat 1.txt 2.txt 3.txt > hb.txt
2.合并整个文件夹
Cat *.txt > newfile
【Sed 】
以行为单位行头行尾添加字符
1.行首添加字符
在每行的头添加字符,比如"TOU_",命令如下:
sed \'s/^/TOU_&/g\' 1.txt
2.行尾添加字符
2.在每行的尾添加字符,比如"Wei_",命令如下:
sed \'s/$/Wei_&/g\' 1.txt
3.每一行的行头和行尾分别添加字符
sed \'/./{s/^/Tou_/;s/$/Wei/}\' 1.txt
"^"代表行首,"$"代表行尾
\'s/$/&TAIL/g\'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
以行为单位的新增/删除
将第 2~5 行删除
sed \'2,5d
只要删除第 2 行
sed \'2d\'
要删除第 3 到最后一行
sed \'3,$d\'
在第二行后(亦即是加在第三行)加上『drink tea?』字样!
sed \'2a drink tea\'
那如果是要在第二行前
sed \'2i drink tea\'
以行为单位的替换与显示
将第2-5行的内容取代成为『No 2-5 number』呢?
sed \'2,5c No 2-5 number\'
仅列出文件内的第 5-7 行
Sed -n \'5,7p\'
数据的搜寻并显示
搜索有root关键字的行 模糊搜索哦
sed -n \'/root/p
数据的搜寻并删除
删除/etc/passwd所有包含root的行,其他行输出
nl /etc/passwd | sed \'/root/d\'
数据的搜寻并替换
sed \'s/要被取代的字串/新的字串/g\' 1.txt
替换@开 到TAB尾
sed \'s/@[^\\t]*\\t/\\t/g\' 1.txt
只保留有某个字符的行 用于保留某行,或者删除没有分隔符的行
sed -n \'/\\t/p\'> out.txt 只输出包含TAB的行
【WC 】
统计行数,在对记录数时,很常用
Wc -l 1.txt
以上是关于使用Cygwin在WIN系统下处理文本常用命令的主要内容,如果未能解决你的问题,请参考以下文章