shell 小技巧之修改后缀及grep

批量修改文件后缀

第一种:

#!/bin/bash
for fn in *.$1
do
mv $fn ${fn%$1}$2
done

第二种:

find . -name "*.txt" | awk -F‘[./]+‘ ‘{print $2}‘ | xargs -i -t mv {}.txt {}.sh

GREP 用户小技巧

文件如下:

# cat test.txt 
This is a test file
a good day and no coludy
Sit here and sing a song
miss agao isting
but money is money !
this is : hang
only one line .

-w 匹配整个单词,避免单词字符匹配

# grep -w is test.txt 
This is a test file
but money is money !
this is : hang

没有匹配到isting

-A 匹配之后的N行

# grep -A 3 Sit test.txt  
Sit here and sing a song
miss agao isting
but money is money !
this is : hang

-B 匹配之前的N行

# grep -B 2 Sit test.txt 
This is a test file
a good day and no coludy
Sit here and sing a song

-C 匹配前后N行

# grep -C 2 -i sit test.txt 
This is a test file
a good day and no coludy
Sit here and sing a song
miss agao isting
but money is money !

-c 统计匹配行数:

# grep -c is test.txt 
4

-o 只显示匹配的字符串:

# grep -o money test.txt         
money
money

-o -b 显示匹配的位置:

# grep -o -b Sit test.txt 
45:Sit

交集与差集:

# cat 1.txt 
1
2
3
4
# cat 2.txt 
1
2
3
4
5
6

交集:

# grep -f 1.txt 2.txt 
1
2
3
4

差集

# grep -vf 1.txt 2.txt 
5
6
时间: 2024-10-15 22:40:25

shell 小技巧之修改后缀及grep的相关文章

6条shell小技巧,让脚本显得不再业余【转】

如何能让自己的shell显得不那么业余?下面6点实践一定有用. 画外音:本篇文章源自Google的一篇实践,抽取了部分1分钟能读完的内容,加入了一些分析. 一.以下面的语句开场 set -o nounset 在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行. 画外音:有些变量名的手误,会让人崩溃的调试半天,通过这个方式,这类手误秒发现. set -o errexit 在默认情况下,遇到执行出错,会跳过并继续执行,而这往往不符合预期

mysql写Shell小技巧

今天终于在表哥的帮助下解决了文件导入/出这个问题了.(很菜逼的一个问题),然后将最近看到的文章都自己测试了下,顺便奉上记录.1.Mysql数据库支持union的时候写文件小技巧: 采用常规的union写入,可以看到前面的字段占位数肯定也会被写入,替换成null也是一样的结果,这个对于写shell没啥大碍,但是如果用来写bat,mof,vbs等文件就会出问题了,那么怎么去掉这个只写入我们需要的内容呢?采用hex编码就好了. 将我们要写入的内容使用hex编码在分段写在每个字段位上,这样就可以只写入我

shell小技巧--用“$$”和"$0"防止同一个脚本启动多次

在编写shell脚本通过crontab定时任务启动时,如果shell脚本执行时间超过了,crontab拉起脚本的时间间隔,这个时候可能就会出现同一个脚本同时启动多次的现象.这个时候可能会导致采集的数据有重复,计算不准确等等问题,在这种有明显先和顺序要求的时候,就会出问题. 需要采取一定手段,防止这种现象.刚好可以用"$$"和"$0",来实现这个需求,实现只有等当前脚本执行完成之后,才能启动第二次执行.好了,废话不多说,直接贴一个demo,只要稍加改动,就可以套用到自

shell小技巧

# awk '{a[$1]++;a[$2]++}END{for (i in a)print i "\t" a[i]}' list | grep -w 2 | awk '{print $1}' > double.list # grep -f double.list list10.145.137.125 10.145.137.130 18110.145.137.130 10.145.137.125 159100.104.0.46 100.104.0.54 12210.151.132.

懒人的小技巧, 批处理修改IP

相信很多人都有这样的麻烦, 工作单位的IP网段与住的不一致, 自己的笔记本在单位和回家的时候每次都要更改IP, 很麻烦,  偷个懒, 做了个批处理来修改IP,方便一点. 还有就是可以把工作的时候才需要启动的服务( 比如数据库服务特别是Oracle ,sqlserver) 设置为手动, 只有更换为单位IP的时候才启动它, 平时在家玩的时候也可以节省点资源. 将下面的文本做成bat, IP改为自己用的IP就可以了. @echo off color e setlocal enabledelayedex

shell小技巧--带颜色的输出

shell作为一种脚本语言是每个Linux管理员必须要掌握的技能,有时可以为shell中的输出添加一些背景颜色,使得脚本整体上略带美观,下面我们利用echo来输出一段字符串,默认情况下,echo显示的字符串都是白色的 我们可以增加一些颜色 那么是怎么实现的呢?下面给出原脚本代码 可能看到那么多数字有点懵,给出具体格式就好了 "\033[前置字符颜色:背景颜色 XXXX\033[0m"              后面没有]了 最后的[0m 代表恢复原始颜色,如果不加上的话,就会是这样的效

shell小技巧速记

1.读取文件中的内容到数组中. while read buf do tArray[$c]=$buf c=$(expr $c + 1) done < aa.txt #文件名是aa.txt for ((i=0;i<$c;i++)) do echo ${tArray[$i]} done

sublime使用小技巧——自动保存后缀名与自动匹配语法

1,打开sublime 2,新建文件 3,ctrl+shift+p 4,输入ss(set syntax),在下拉列表中选择需要的语言 列表很多,可以输入相关快捷键 如:html-->ssh css-->sscs js-->ssjs 5,保存

日常开发中的shell小技巧

工具推荐 命令行中很方便的代码统计工具---cloc 模拟生成熵(避免暴力手搓键盘) sudo rngd -r /dev/urandom -o /dev/random -f 自动输密码的脚本,基于expect #!/usr/bin/expect set password "butub" set files [glob -nocomplain -- ./*.deb] puts "[llength $files]" for {set i 0} {$i<[lleng