#####awk awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) cat build.xml|awk '/<jar/+/<install/' 显示含有<jar或者<install的行内容 awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15' file awk -F "|" '{print $1}' file 按照新的分隔符“|”进行操作。 awk 'BEGIN { FS="[: /t|]" } {print $1,$2,$3}' file 通过设置输入分隔符(FS="[: /t|]")修改输入分隔符。 Sep="|" awk -F $Sep '{print $1}' file 按照环境变量Sep的值做为分隔符。 awk -F '[ :/t|]' '{print $1}' file 按照正则表达式的值做为分隔符,这里代表空格、:、TAB、|同时做为分隔符。 awk -F '[][]' '{print $1}' file 按照正则表达式的值做为分隔符,这里代表[、] cat build.properties.default |awk '/#/{print "注释"}' --遇到行首是#开头的注释 awk '$1 ~ /101/ {print $1}' file 显示文件中第一个域匹配101的行(记录)。 awk 'BEGIN { OFS="%"} {print $1,$2}' file 通过设置输出分隔符(OFS="%")修改输出格式。输出值域1,2并以%分割 awk '{$1 == 'Chi' {$3 = 'China'; print}' file 找到匹配行后先将第3个域替换后再显示该行(记录)。 http://blog.csdn.net/tianlesoftware/article/details/6278273 ######sed 只是输出不显示 作用于行数据 sed [-nefri] ‘command’ 输入文本 -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e∶直接在指令列模式上进行 sed 的动作编辑; -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i∶直接修改读取的档案内容,而不是由萤幕输出。 a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! >删除某行 sed '1d' ab #删除第一行 sed '$d' ab #删除最后一行 sed '1,2d' ab #删除第一行到第二行 sed '2,$d' ab #删除第二行到最后一行 >显示某行 sed -n '1p' ab #显示第一行 sed -n '$p' ab #显示最后一行 sed -n '1,2p' ab #显示第一行到第二行 sed -n '2,$p' ab #显示第二行到最后一行 >使用模式进行查询 sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行 sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义 >增加一行或多行字符串 sed '1a drink tea' ab #第一行后增加字符串"drink tea" sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea" sed '1a drink tea\nor coffee' ab #第一行后增加多行,使用换行符\n >代替一行或多行 sed '1c Hi' ab #第一行代替为Hi sed '1,2c Hi' ab #第一行到第二行代替为Hi >替换一行中的某部分 sed 's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式) sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird ed -n '/ruby/p' ab | sed 's/ruby//g' #删除ruby >插入 sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye" ######sort u去重 r降序 k 第几列 t分割符 n 排序按数字 -f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写 -c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1 -C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1 -M会以月份来排序,比如JAN小于FEB等等 -b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。 ######uniq – c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。 – d 只显示重复行。 – u 只显示文件中不重复的各行。 – n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。 +n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。 – f n 与- n相同,这里n是字段数。 – s n 与+n相同,这里n是字符数。 ######grep [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大 小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \: 忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达 式的行开始。 \>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求 。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 。:所有的单个字符。 * :有字符,长度可以为0。 #!/bin/bash function usage() { echo "请进入要搜索的目录再使用." echo "usage:$0 'keyword'" } if [ $# -ne 1 ];then usage exit fi grep -nre "$1" * --exclude=*ttf --exclude=*gif --exclude=*jpg --exclude=*gdf --color=ALWAYS|grep -v \.svn|grep -v custom\.js| grep -v lib\.js | grep -v custom\.css ######find find /tmp/ -name "eclipse*"|xargs rm -rf ######wc - c 统计字节数。 - l 统计行数。 - w 统计字数。 #!/bin/bash hostfile='/tmp/hosts' if test -s $hostfile;then rm -rf $hostfile; fi wget -t 0 -w 31 -c https://smarthosts.googlecode.com/svn/trunk/hosts -O $hostfile if test -s $hostfile;then echo '下载成功'; mv $hostfile /etc/hosts; [ $? -eq 0 ] && echo "/etc/hosts update success"; else echo '下载失败'; fi exit 0;
#rhythmbox播放器乱码转换脚本mp3.sh,保存后执行mp3.sh|sh ls|grep -v 'mp3.sh'|while read line do line=$(echo $line|sed 's/[ ()&]/\\&/g') echo mid3iconv -e gbk $line done
import java.util.regex.Matcher; import java.util.regex.Pattern; public class base { /** * @param args */ public static void main(String[] args) { find(); fetch(); opera(); } public static void find() { //是否包含@qq.com String source = "[email protected]"; String regEx = "[@qq.com]"; Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(source); boolean isFind = matcher.find(); if (isFind) { System.out.println(true); } //找到@替换成<at> pattern = Pattern.compile("[@]"); // 正则表达式 matcher = pattern.matcher(source); // 操作的字符串 StringBuffer sb = new StringBuffer(); int count = 0; while (matcher.find()) { matcher.appendReplacement(sb, "<at>"); count++; // 字符串出现次数 } matcher.appendTail(sb);// 从截取点将后面的字符串接上 System.out.println(sb.toString()); } public static void fetch() { // xiaofancn // qq.com234 String source = "[email protected]"; Pattern pattern = Pattern.compile("@"); // 正则表达式 String[] strs = pattern.split(source); // 操作字符串 得到返回的字符串数组 for (String string : strs) { System.out.println(string); } // 234 pattern = Pattern.compile("[0-9]"); // 正则表达式 Matcher matcher = pattern.matcher(source); // 操作的字符串 String number = ""; while (matcher.find()) { // m.start() 返回匹配到的子字符串在字符串中的索引位置. // m.end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. // m.group()返回匹配到的子字符串 number += matcher.group(); } System.out.println(number); } public static void opera() { // xiaofancn<at>qq.com234 String source = "[email protected]"; Pattern pattern = Pattern.compile("[@]"); // 正则表达式 Matcher matcher = pattern.matcher(source); // 操作的字符串 String result = matcher.replaceAll("<at>"); // 替换后的字符串 System.out.println(result); } }
http://edu.yesky.com/edupxpt/18/2143018.shtml
权限赋值
grant all privileges on *.* to root@localhost identified by '123456'; flush privileges;
ubuntu删除软件
apt-get purge mysql*
apt-get autoremove