去掉最后一个字符

  • sed 's/.$//'

  • awk '{sub(/.$/,"")}1'

  • awk '{printf $0"\b \n"}'

[root@ ~]# echo "387691,387710,387720,387817,387922,388067,"
387691,387710,387720,387817,387922,388067,
[root@ ~]# echo "387691,387710,387720,387817,387922,388067," | sed 's/.$//'
387691,387710,387720,387817,387922,388067
[root@ ~]# echo "387691,387710,387720,387817,387922,388067," | awk '{sub(/.$/,"")}1'
387691,387710,387720,387817,387922,388067
[root@ ~]# echo "387691,387710,387720,387817,387922,388067," | awk '{printf $0"\b \n"}'

shell脚本传参小技巧

一般常见的脚本参数传递:./script.sh --argv1=a1 --argv2=a2 或者 ./script.sh -a1 a1 -a2 a2 ,或者两种混用

ParseArguments() {
while [ $# != 0 ] ;
do
case "$1" in
-argv1|-a1)
argv1=$2
shift 2
;;
--argv1=*)
argv1=${1#--argv1=}
shift
;;
-argv2|-a2)
argv2=$2
shift 2
;;
--argv2=*)
argv2=${1#--argv2=}
shift
;;
-argv3|-a3)
argv3=$2
shift 2
;;
--argv3=*)
argv3=${1#--argv3=}
shift
;;
*)
echo "$1 error"
echo $"$0: Usage: ..."
exit 1
;;
esac
done
} ParseArguments "$@"

对True | False 进行判断的函数

is_true() {
case "$1" in
[tT] | [yY] | [yY][eE][sS] | [tT][rR][uU][eE])
return 0
;;
esac
return 1
} is_false() {
case "$1" in
[fF] | [nN] | [nN][oO] | [fF][aA][lL][sS][eE])
return 0
;;
esac
return 1
}

当is_true函数的第一个参数(后面的参数会忽略掉)为忽略大小写的t、y、yes或true时,返回状态码0,否则返回1。

当is_false函数的第一个参数(后面的参数会忽略掉)为忽略大小写的f、n、no或false时,返回状态码0,否则返回1。

对比两个目录的文件差异

diff <(tree -Ci --noreport d1) <(tree -Ci --noreport d2) 

diff -r d1 d2

vimdiff  <(find d1 -printf "%P\n" | sort) <(find d2 -printf "%P\n" | sort)

#或者远程比较:
vimdiff <(ssh -p 22 -o StrictHostKeyChecking=no 127.0.0.1 "find /tmp/test/t1 -printf '%P\n' | sort" 2>/dev/null) <(find /tmp/test/t2 -printf "%P\n" | sort)

vimdiff方法可以得到如下截图效果:

shell 中的小技巧的更多相关文章

  1. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

  2. lua学习笔记11:lua中的小技巧

    lua中的小技巧,即基础lua语言本身的特种,进行一个些简化的操作 一. 巧用or x = x or v 等价于: if not x then x = v end 假设x为nil或false,就给他赋 ...

  3. 杂谈---小故事小道理,面试中的小技巧(NO.2)

    本篇是接着上一篇面试随笔的,上一次有猿友反应写的有些“扯淡”,LZ思来想去最大的原因可能是由于上一章写的全是一些大忌,既然是大忌,那么在现实当中发生的概率还是相对较小的,大部分人还是很少在面试中犯如此 ...

  4. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  5. iOS中TableView小技巧

    摘要: TableView是ios开发中经经常使用到的控件,这里统一记录一下开发中遇到的经常使用小技巧,不断探索更新.也希望大家能够告诉我很多其它经常使用的小技巧啦~一起进步 1.去除多余的列表线条 ...

  6. iOS - 开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  7. 【js】中的小技巧

    本文主要介绍一些JS中用到的小技巧 1. 类型强制转换   1.1 string强制转换为数字 可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为 ...

  8. 分享几个asp.net开发中的小技巧

    下面这几个,是在实际开发或阅读中发现的一些问题,有些甚至是有很多年开发人员写出的代码,也是很多人经常犯的错误.各位可以看看,你有没有躺着中枪. 第一个,对整型变量进行非null判断. // a 是in ...

  9. EF(Linq)框架使用过程中的小技巧汇总

    这篇博客总结本人在实际项目中遇到的一些关于EF或者Linq的问题,作为以后复习的笔记或者供后来人参考(遇到问题便更新). 目录 技巧1: DbFunctions.TruncateTime()的使用 技 ...

随机推荐

  1. composer install 遭遇404错误

    [Composer\Downloader\TransportException] The "https://packagist.phpcomposer.com/p/provider-2019 ...

  2. git-代码同步至github

    代码同步到github上 Last login: Wed Mar 27 13:53:06 on ttys001localhost:~ ligaijiang$ gitusage: git [--vers ...

  3. kdeplot(核密度估计图) & distplot

    Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图 ...

  4. 20165321 2017-2018-2《Java程序设计》课程总结

    每周作业链接汇总 预备作业1:20165321 我期望的师生关系 预备作业2:20165321 学习基础与C语言学习心得 预备作业3:20165321预备作业3:Linux安装及命令入门 第一周作业: ...

  5. iOS UI基础-10.0 QQ聊天布局之键盘及文本使用

    要实现的效果:   这里只说用到的几个知识点 1.图片包含文字 在设置文字的Frame的时候,使用背景(按钮)的尺寸,文字使用了内边距 背景图片,使用拉伸 /** * 返回一张可以随意拉伸不变形的图片 ...

  6. (已解决)Xcode 运行报错: clang: error: unknown argument: '-websockets'

    报错内容: 解决办法:

  7. Unity中HideInInspector和SerializeField以及Serializable

    首先,Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来. 然后是,什么样的值会被显示在面板上? 已经被序列 ...

  8. spring mvc配置datasource数据源的三种方式

    2.使用org.apache.commons.dbcp.BasicDataSource 说明:这是一种推荐说明的数据源配置方式,它真正使用了连接池技术 <bean id="dataSo ...

  9. sqli-labs(八)——修改密码处sql注入+http头sql注入

    第17关: 这是一个重置密码的功能存在sqk注入,尝试账号密码都输入'",发现只会显示登陆失败,没有报错信息. 这个时候先推测一下后台的sql形式大概应该是: update users se ...

  10. java 控制台输入

    import java . util . Scanner ; public class Test { public static void main(String[] args) { Scanner ...