BASH命令和SHELL脚本总结(12)如何对字段进行操作
2012-10-18 14:16
381 查看
100%转载自 http://ahei.info/text-processing.htm
cut的用法
挺常用的一个命令, 能非常方便的取某个字段
-f, –fields=LIST
选择要输出的字段
-c, –characters=LIST
选择要输出的字符
-b, –bytes=LIST
选择要输出的字节
-d, –delimiter=DELIM
设定字段分隔符, 默认是TAB. 可惜的是, 该分隔符也只能是单个字符.
–complement
取设定的选择LIST的补集
-s, –only-delimited
忽略不包含分隔符的行, 默认操作是输出整行
–output-delimiter=STRING
设定输出分隔符
LIST
-f, -c, -b选项使用的列表, 可以有下面几种形式:
N 第N个字段/字节/字符
N-从第N个到最后一个
M-N 从第M个到第N个
-M 从第一个到第N个
列表可以有多个, 之间以逗号分割, 比如: cut -f1-3,4-7
paste的用法
这个命令很有意思, 把两个文件按行粘贴到一块, 曾经我想自己写个程序搞定这个需求, 后来发现linux下竟然已经有这玩意了(linux总能给你带来惊喜)
$ cat num2
1
2
$ cat let3
a
b
c
$ paste num2 let3
1 a
2 b
c
-d, –delimiters=LIST
paste两个文件的时候, 默认是用TAB分割, 这个选项设定分隔符, 同为可惜的是, 只能为单个字符(主要是paste可以粘贴多个文件, 这个选项的第二个字符用来分割第二个和第三个文件)
-s, –serial
默认paste是竖着粘贴的, 加了这个选项后, 就横着粘贴了:
$ paste -s num2 let3
1 2
a b c
join的用法
这是一个稍微高级点的命令, 它把输入文件当成一个key/value对, 然后会把同一个key的所有value粘贴到一块, 来个例子:
$ cat file1
a 1
b 2
c 3
$ cat file2
a 4
c 6
$ join file1 file2
a 1 4
c 3 6
join默认把第一额字段当作key, 字段之间以空格分割, 作为key的字段必须有序.
-i, –ignore-case 比较字段时, 忽略大小写
-t CHAR 使用CHAR作为字段分隔符, 又是只能为单个字符(杯具…)
-1 FIELD 设定第一个文件的key为第FIELD个字段
-2 FIELD 设定第二个文件的key为第FIELD个字段
cut的用法
挺常用的一个命令, 能非常方便的取某个字段
-f, –fields=LIST
选择要输出的字段
-c, –characters=LIST
选择要输出的字符
-b, –bytes=LIST
选择要输出的字节
-d, –delimiter=DELIM
设定字段分隔符, 默认是TAB. 可惜的是, 该分隔符也只能是单个字符.
–complement
取设定的选择LIST的补集
-s, –only-delimited
忽略不包含分隔符的行, 默认操作是输出整行
–output-delimiter=STRING
设定输出分隔符
LIST
-f, -c, -b选项使用的列表, 可以有下面几种形式:
N 第N个字段/字节/字符
N-从第N个到最后一个
M-N 从第M个到第N个
-M 从第一个到第N个
列表可以有多个, 之间以逗号分割, 比如: cut -f1-3,4-7
paste的用法
这个命令很有意思, 把两个文件按行粘贴到一块, 曾经我想自己写个程序搞定这个需求, 后来发现linux下竟然已经有这玩意了(linux总能给你带来惊喜)
$ cat num2
1
2
$ cat let3
a
b
c
$ paste num2 let3
1 a
2 b
c
-d, –delimiters=LIST
paste两个文件的时候, 默认是用TAB分割, 这个选项设定分隔符, 同为可惜的是, 只能为单个字符(主要是paste可以粘贴多个文件, 这个选项的第二个字符用来分割第二个和第三个文件)
-s, –serial
默认paste是竖着粘贴的, 加了这个选项后, 就横着粘贴了:
$ paste -s num2 let3
1 2
a b c
join的用法
这是一个稍微高级点的命令, 它把输入文件当成一个key/value对, 然后会把同一个key的所有value粘贴到一块, 来个例子:
$ cat file1
a 1
b 2
c 3
$ cat file2
a 4
c 6
$ join file1 file2
a 1 4
c 3 6
join默认把第一额字段当作key, 字段之间以空格分割, 作为key的字段必须有序.
-i, –ignore-case 比较字段时, 忽略大小写
-t CHAR 使用CHAR作为字段分隔符, 又是只能为单个字符(杯具…)
-1 FIELD 设定第一个文件的key为第FIELD个字段
-2 FIELD 设定第二个文件的key为第FIELD个字段
相关文章推荐
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- BASH命令和SHELL脚本总结(17)在BASH中计算两天的间隔天数
- BASH命令和SHELL脚本总结(2)常识篇
- BASH命令和SHELL脚本总结(5)赋值篇
- BASH命令和SHELL脚本总结(10)脚本互相调用篇
- BASH命令和SHELL脚本总结(14)cat和grep和sort
- BASH命令和SHELL脚本总结(3)命令篇
- BASH命令和SHELL脚本总结(6)括号篇
- BASH命令和SHELL脚本总结(7)判断篇
- BASH命令和SHELL脚本总结(13)BASH中的快捷键和简写
- BASH命令和SHELL脚本总结(8)循环篇
- BASH命令和SHELL脚本总结(11)比较两个文件创建时间的先后
- BASH命令和SHELL脚本总结(9)其它篇
- BASH命令和SHELL脚本总结(16)父脚本中export的变量在子脚本中的可见性测试
- BASH命令和SHELL脚本总结(15)find和xargs和exec和rsync
- BASH命令和SHELL脚本总结(4)AWK篇
- BASH命令和SHELL脚本总结(19)递归地拷贝目录结构
- BASH命令和SHELL脚本总结(1)入门篇
- shell中date命令对month进行加减操作的bug
- SHELL 脚本命令总结(一)