1. 首页 > 科技

Linux里面awk里面OFS作用是什么? linux中awk

Linux里面awk里面OFS作用是什么?linux中awk

linux命令sed与awk是干什么用的,怎么用?

非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的

unix系统有几个非常命令的特点:

1. 对于内核而言,unix文件都是字节序列。io设备也是文件。

2. 至于文件的含义交由应用程序来解释。其中文本文件非常重要,因为unix提供 很多了实用程序(utility),这些程序功能相对独立,但可以通过管道来实现进程间通信(IPC),这样松散的耦合可以完成复杂的操作。那么进程间的通信的数据格式是怎样的呢? 其实对于实用程序而言,这个数据格式就是简单的文本文件。此外,还有IO重定向,也是一个不错的创意。至于文本文件中的内容采用什么格式呢?这个很具体的命令有关,那么操作文本就变得非常重要。grep,sed和awk就是三个操纵文本文件的命令

grep搜索

sed 修改和编辑文本文件中某些行

awk 是访问文本文件,操纵文本文件中某些数据

明白了吗?

求详解此命令 awk 'BEGIN{OFS=FS=":"} NR==FNR{a[$1]=$2}NR>FNR{$2=a[$1];print}' 1.txt 2.txt

BEGIN{OFS=FS=":"}

==>如你所说,将输出和输入分隔符设置为冒号,看来你知道这个,就不说了;

NR==FNR{a[$1]=$2}

==>NR为当前所有已读入的行数,FNR为当前文件已读入的行数,那么意思很明显,"NR=FNR"就表示读取第一个文件(1.txt)的每行时,"a[$1]=$2"表示设置一个数组元素,该元素下标为第一列,该元素值为第二列。

NR>FNR{$2=a[$1];print}

==>根据前面的讲解,这里"NR>FNR"当然就表示读取第二个文件(2.txt)每行时,"$2=a[$1];print"表示将该行的第二列替换为之前建立的那个数组中对应的元素,该元素的下标为第一列的值,然后打印替换后的该行。

如1.txt中有如下内容:

a:1

b:2

c:3

2.txt中有以下内容:

b:xiaobi:hehe

c:cat:jie

a:dog:dudu

那么打印内容为:

b:2:hehe

c:3:jie

a:1:dudu

linux shell中awk的用法

这个。。。太多了。如果在这里就能说清楚,那么其本身功能的强大性就值得质疑。

只能推荐一些电子书(网上都可以找到)和学习链接给你:

Unix awk使用手册(第二版).doc

Awk - An Introduction and Tutorial.doc

详解著名的awk_oneliner.pdf

通用线程: awk 实例:

www.ibm/developerworks/cn/linux/shell/awk/awk-1/

linux中awk以及grep命令

ls|xargs grep -E "^rec|^orec" | awk -F "|" '{if($68==0)print $1}'|awk -F: '{print $1}'|sort|uniq