linux basename dirname diff comm

本文深入解析Linux中的basename与dirname命令,通过实际示例演示如何获取路径名称中的文件名部分与目录部分,并提供了自定义脚本实现相似功能。同时,介绍了字符串操作中的${变量#样式}

basename 取得路径名称中最后的文件名部分

[root@localhost temp]# basename /etc/terminfo/
terminfo

以下脚本也可以得到同样的效果:

#!/bin/bash

# Filename:baseName.sh

###仿真basename指令

bn=${1##*/}

echo $bn


dirname 取得路径名称中的目录部分

[root@localhost temp]# dirname /etc/terminfo/
/etc

以下脚本也可以得到同样的效果:

#!/bin/bash

# Filename:dirName.sh

###仿真dirname指令

dn=${1%/*}

echo $dn


补充对比样式:
前面相比,删除最短的${变量#样式};删除最长的${变量##样式}
后面相比,删除最短的${变量%样式};删除最长的${变量%%样式}
取代或删除部分字符串,只替换第一个对比符合的字符串${变量/样式/替换字符串},全部符合的${变量//样式/替换字符串};

删除第一个对比符合的字符串${变量/样式/},全部符合的${变量//样式/}
整理小结:

详细请见:http://hi.baidu.com/ysdaniel/blog/item/fee6fffcbc9b7213d8f9fdfe.html


diff 比较两个文件之间的差异

diff file1 file2


comm 以列和列的方式,比较两个已排好序的文件

comm file1 file2

例子:

[root@localhost temp]# diff pp.txt jj.txt
8a9,11
> I am jj
> hi
> by
[root@localhost temp]# comm pp.txt jj.txt
                hi pp
                how are you
                thks
                by
                I come again
                you welcome me?
                Oh,you not
                then by again
        I am jj
comm: file 2 is not in sorted order
        hi
        by

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值