cut,xargs,sort,tr,rename命令解析

cut

文件内容查看

显示行中的指定部分,删除文件中指定字段

显示文件的内容,类似于下的type命令。

语法:

 cut(选项)(参数)

选项:

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。

扫描二维码关注公众号,回复: 7222981 查看本文章

参数:

文件:指定要进行内容过滤的文件

==================================================================================

xargs

xargs用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

cat test.txt

a b c d e f g

h i j k l m n

o p q

r s t

u v w x y z

多行输入单行输出:

cat test.txt | xargs

a b c d e f g h i j k l m n o p q r s t u v w x y z

-n选项多行输出:

cat test.txt | xargs -n3

a b c

d e f

g h i

j k l

m n o

p q r

s t u

v w x

y z

-d选项可以自定义一个定界符:

echo "nameXnameXnameXname" | xargs -dX

name name name name

结合-n选项使用:

echo "nameXnameXnameXname" | xargs -dX -n2

name name

name name

xargs的一个选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次:

cat arg.txt | xargs -I {} ./sk.sh -p {} -l

-p aaa -l

-p bbb -l

-p ccc -l

复制所有图片文件到 /data/images 目录下:

ls *.jpg | xargs -n1 -I cp {} /data/images

=====================================================================================
sort

sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:

  sort [-bcfMnrtk][源文件][-o 输出文件]
sort可针对文本文件的内容,以行为单位来排序。

参  数:
  -b   忽略每行前面开始出的空格字符。
  -c   检查文件是否已经按照顺序排序。
  -f   排序时,忽略大小写字母。
  -M   将前面3个字母依照月份的缩写进行排序。
  -n   依照数值的大小排序。
  -o<输出文件>   将排序后的结果存入指定的文件。
  -r   以相反的顺序来排序。
  -t<分隔字符>   指定排序时所用的栏位分隔字符。
  -k  选择以哪个区间进行排序。

==========================================================================

tr
tr [选项]… 集合1 [集合2]

选项:

-c, -C, –complement 用集合1中的字符串替换,要求字符集为ASCII。

-d, –delete 删除集合1中的字符而不是转换

-s, –squeeze-repeats 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

-t, –truncate-set1 先删除第一字符集较第二字符集多出的字符

字符集合的范围:

\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)

\\ 反斜杠

\a Ctrl-G 铃声

\b Ctrl-H 退格符

\f Ctrl-L 走行换页

\n Ctrl-J 新行

\r Ctrl-M 回车

\t Ctrl-I tab键

\v Ctrl-X 水平制表符

CHAR1-CHAR2 从CHAR1 到 CHAR2的所有字符按照ASCII字符的顺序

[CHAR*] in SET2, copies of CHAR until length of SET1

[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0

[:alnum:] 所有的字母和数字

[:alpha:] 所有字母

[:blank:] 水平制表符,空白等

[:cntrl:] 所有控制字符

[:digit:] 所有的数字

[:graph:] 所有可打印字符,不包括空格

[:lower:] 所有的小写字符

[:print:] 所有可打印字符,包括空格

[:punct:] 所有的标点字符

[:space:] 所有的横向或纵向的空白

[:upper:] 所有大写字母

=========================================================================

rename

参数:

-v 表示会显示修改成功的文件名;

-n 则表示不执行任何操作,主要用来测试rename过程,并不直接运行,可以查看测试效果后,然后再运行;

-f 则表示会强制修改。

将文件名称的大写全部转换为小写则为:

rename 'y/A-Z/a-z/' *

*.JPG更名为*.jpg则可以用:

rename *.JPG *.jpg

猜你喜欢

转载自www.cnblogs.com/ZCQ123456/p/11482038.html