今天为了实现写一个自动拷贝文件的脚本,有一个小实现就是需要把一个目录的第一级目录给切掉。
比如:
root/a/b/c需要去掉root。
因为需要awk,所以一直思考用awk实现,可是想了半天未果。后来思考sed还是没有搞定。
最后才想到了最小巧的cut,没想到这哥们还真管。轻松搞定。
所以想好好总结一下cut的使用。
常用参数:
-c 根据字符,用法:cut -cN1-N2 filename 截取N1到N2之间的字符,字符从1开始记。
-f 根据域,默认为tab分隔可以通过参数d来规定自己想要的分隔符。
-d 定义域分隔符。
使用方式:
方式1:
cut 指定截取部分 被截取的文件
方式2:
echo "string" | cut 指定截取部分 被截取的文件
例子:
截取开始的3个字符
echo "root/a/b/c" | cut -c1-5
ans:root/
echo "root/a/b/c" | cut -c6
ans:a
echo "root/a/b/c" | cut -c-4
ans:root
echo "root/a/b/c" | cut -c5-
ans:a/b/c
cut -b的使用跟-c的使用是一样的,除了-b是严格按照字节来的,而-c是按照字符来剪的。
echo "root/a/b/c" | cut -d/ -f 2
ans:a
echo "root/a/b/c" | cut -d/ -f2-
ans:a/b/c