这篇日志记录使用到的快捷bash,sed,awk脚本。
Bash篇
输出指定行(第k行,包括k行)及其后面所有行,用于去除文件头
Record the typescripts of everything printed on your terminal
拷贝一个文件到当前目录的所有子目录(可以使用-maxdepth指定子文件级数)
修改多个目录下的同一个文件
bash script中使用$符号,需加反斜线(\)转义
求文件所有数值的最小值(两条语句细微的差别,第二个更保险)
从文件中取出随机行或文件夹中取出随机文件
删除指定大小的文件
查看当前目录下文件的个数(包含隐藏文件)
统计多个文件总大小
大小写转换
bash记录命令运行时间并写入相应目录
bash一行行读取文件
sort多列排序
bash数组操作,索引版
bash数据同步
时间函数
显示自己的进程
杀掉一个用户的进程
bash下diff比较标准输入的重定向
paste, cut, join, split
expand, unexpand
计算文件中最长行的长度
join使用,参考 使用join前确保已按第一列排好序sort -k1,1,而不是sort. 第一行如果有标题,应去掉。
bash从标准输入读取信息
删除一个用户的全部进程
删除包含某一特定的程序的所有进程
bash中while循环
window文件^M转换为linux格式
wc -l的误差
touch修改时间戳
uniq指定忽略的列或字符,配合awk使用,把不需要比较的列放到前面
统计字符出现个数
sort排序,保留标题行http://forums.devshed.com/unix-help-35/sort-excluding-first-line-heading-line-183574.html
grep匹配tab
for循环中使用后台运行【Both & and ; are line terminators, only one is enough.】
http://ubuntuforums.org/showthread.php?t=504030
输出当前运行的bash文件所在目录
得到linux下命令的地址和判断某个命令是否存在
排序大文件,先拆分再排序
bash中输出从1到n的数
bash中统计所有文件的大小
wait的使用
管道( |
)会开启一个新的shell,在同时使用wait时要格外注意(把wait和想wait的东西括在一起)。【http://stackoverflow.com/questions/6041708/bash-subshells-and-waiting-for-subprocesses-to-finish 】【http://stackoverflow.com/questions/2259867/bash-threading-wait-for-all-job-threads-to-finish-doesnt-work】 |
—————-wrong—————————–
找更新的文件
批量修改软链接
批量删除断了的软连接 (search for and remove dead symbolic link)
配置登录终端类型 [不添加–login不回读取.bash_profile]
在bash 脚本中,subshells (写在圆括号里的) 是一个很方便的方式来组合一些命令。一个常用的例子是临时地到另一个目录中,例如:
在 bash 中,注意那里有很多的变量展开。如:检查一个变量是否存在: ${name:?error message}。
如果一个bash的脚本需要一个参数,也许就是这样一个表达式 input_file=${1:?usage: $0 input_file}。
一个计算表达式: i=$(( (i + 1) % 5 ))。一个序列: {1..10}。
截断一个字符串: ${var%suffix} 和 ${var#prefix}。
示例: if var=foo.pdf, then echo ${var%.pdf}.txt prints “foo.txt”.
find使用
bash命令的重用
delete files with hypen or dash or search dash(-) in a file
Getting colored results when using a pipe from grep or ls to less
bash for loop
bash中的算术元算
Useful tips
bash中把行倒叙 tac, 把列倒叙 rev
Bash function
Sed篇
取出文件中特定的一行或几行
列出文件夹的目录结构,可以用tree命令实现
去除文件中的空行
sed记忆匹配
sed给每行增加行号
sed在特定位置插入行 [\ 可能不需要]
sed奇数偶数行处理
删除一个用户的全部进程
删除包含某一特定的程序的所有进程
sed使用bash的变量
sed删除行 (删除不需要-n,去除行需要-n)
sed对特定行进行操作
#####
#####
http://sed.sourceforge.net/sed1line_zh-CN.html
Awk篇(默认用空格分割)
Awk representing script
做两列的四则运算
交换两列
求文件一行的最小值
求文件所有数值的最小值
求文件每一列的平均值
awk if else if else
awk中计算相关的函数
awk字符串连接
awk替换操作,支持正则表达式
awk转换大小写
awk的split函数
按行统计字符出现次数
awk给每行增加行号,使其变为唯一
awk round
awk统计文件中一行某字符的比例
Pass Shell Variables To awk [http://www.cyberciti.biz/faq/linux-unix-appleosx-bsd-bash-passing-variables-to-awk/]
awk行调换与缩减
awk匹配含有特定字符串的列
awk计算对数
awk读两个文件
awk同时读两个文件,每次各读一行 (文件名 file1,file2) [也可用paste完成]
awk写入多个文件,根据文件内部条件写入不同文件
awk去除数字小数位
awk在作字符串比较时可能使用位与操作,因此对于很小的数比较可恩那个会发生溢出的现象。推荐使用算数操作,可以避免这个问题。
awk强制退出用some_cmd;exit;
awk不能识别Linux下的家目录符号(~)
awk输出到标准错误并退出 [错误的用法]
awk格式化输出
awk中自定义函数
awk execute shell command
#####
#####
#####
Perl篇
一个字符串重复多次输出
统计一个字符的出现次数
匹配并且利用
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
Convert篇
eps图形转换为png
Printer
system-config-printer
参考资料:
http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/abs-3.9.1_cn/html/index.html