您的位置:首页 > 运维架构 > Shell

shell 中常用的字符串处理函数

2013-05-15 13:01 190 查看
1. cut命令

通常,cut命令用来从输入文件中选取一个或多个字段或者一些字符。

常见的语法:

cut -c list [file ...]

cut -f list [file ...]

选项:

-c: 选择某行中的字符,例如ls -l | cut -c 3-5是选择ls -l命令输出的第3到第5个字符后输出。

-f: 选择某行中的字段,例如ls -l | cut -f 3-5 -d ' '是选择ls -l命令输出的第3到第5个字段后输出。

-d:通常也-f一起使用,指定分割字段的定界符。

2. join命令

join命令用来连接两个文件中的相同键值的其余内容后输出。

常见语法:

join [options...] file1 file2

选项:

-1 field1, -2 field2: 选择file1中的field1字段和file2中的field2字段作为键值。

-o file.field: 输出file中的field字段。通常file是1或2。当由此选项时则只输出指定的字段内容。

-t separator:使用separator作为输入字段的分隔符而非使用空格或TAB。

若想指定file1为标准输入,请使用-。

举例说明:

若sales.txt中内容为:

#ID 名称 数量

1 joe 100

2 sitanda 200

3 dart 150

4 tom 210

quotes.txt的内容为:

#ID 姓名 籍贯

1 sitanda 湖南

2 joe 美国

3 tom 法国

4 dart 北京

$: sed '/^#/d' quotes.txt > sort -t 2 > quotes1.txt

删除quotes.txt中的以#开头的行,并按照第二个字段排序后输出到quotes1.txt中

$: sed '/^#/d' sales.txt | sort -t 2 > sales1.txt

删除sales.txt中的以#开头的行,并按照第二个字段排序后输出到sales1.txt中

$: join -1 2 -2 2 -o 1.3 -o 2.3 -o 1.2 sales1.txt quotes1.txt

将sale1.txt的第二个字段和quotes1.txt的第二个字段作为主键合并两个文件的内容,并输出sale1.txt的第2和3个字段,quotes1.txt的第三个字段。结果为:

150 北京 dart

100 美国 joe

200 湖南 sitanda

210 法国 tom
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: