用cut命令输出列:
cut命令输出一个文本文件中指定的列。假设有一个名为example.txt的文件具有以下的文本:
one two three
four five six
seven eight nine
ten eleven twelve
可用 -f选项执行要提取的字段。下面的命令将返回example.txt文件中的第二列:cut -f2 example.txt
two
five
eight
eleven
使用带-c选项的cut命令来指定希望从一个文件中提取的特定字符。下面的两个命令分别提取password.txt文件中的第10个字符以及第10-12个字符:
password.txt | cut -c10
password.txt | cut -c10-12
-f选项与-d选项一起使用可提取在一个特定定界符之前的所有字符。下面的例子说明,cut命令提取passwd文件的第一个字段(f1),用-d选项指出该字段是由冒号(:)定界的。(passwd文件位于/etc目录,此目录保存UNIX和Linux系统用户账号信息。)
cut -d":" -f1 /etc/passwd
root
deamon
bin
sys
adm
uucp
用paste命令联结文件
paste命令从一个源取一行并将其与另一源的另一行组合起来。假设有两个文件:test1.txt包含字符串“one two three”,test2.txt包含“one four five six”。可按如下用paste命令将两个文件结合起来:paste test1.txt test2.txt
one two three one four five six
用join命令联结文件
join命令也可联结两个文件的内容,但它只在两个文件有一个共同字段时进行联结。
test.one test.two
11111 Dallas 11111 High Tech
22222 Houston 22222 Oil and Energy
默认情况下,join只匹配第一个字段,所以它将根据共同列(第一列)给出如下结果:
11111 Dallas High Tech
22222 Houston Oil and Energy
-1选项指出使用哪个字段作为第一个文件中的匹配字段。 -2选项指定使用那个字段作为第二个文件中的匹配字段。例如,如果要第一个文件的第二个字段匹配第二个文件的第三个字段:join -1 2 -2 3 test.one test.two
可使用-o选项以下面的格式指定输出字段:file.field。因此,要打印第一个文件的第二个字段和第二个文件的第三个字段的匹配行,可使用如下:join -o 1.2 2.3 test.one test.two