Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
by Javier Palacios Bermejo

About the author:

Javier����������ѧ���������ķ������ѧ�о�.�����︺�����һЩ����վ.�����ڲ��ŵ��ճ�����ʵ��Unixϵͳ����ɵ�.������һЩ�������������,��ѡ����slackware Linux. Linux�Եñ�Ŀǰ���е�����Unixϵͳ����.

Content:

ʵ������

[Ilustration]

Abstract:

���Ľ�����һЩʹ��AWK�����š���������һ�ݽ̲ģ��������н�����һЩʹ�õ����ӡ�



��������ڿ���Guido Socher��linuxfocus�Ϸ����ļ�ƪ���£�����д��ƪ���¡���Guido Socher����������һƪ�ǽ����ļ����Һ���������ģ�������ʶ��������ֻ����һ������ʹ�������С��ܶ�ʱ��Ư����ͼ���û����治�ܸ���������������ν��еģ�����windows���������������ķ���������һƪ�����ǹ��ڹ������ʽ�ġ������ڴ�����û�й�����ἰ����ı���ʽ����ҲҪ��awk�Լ������������sed��grep�����˽⵽�ܶࡣ

����Ĺؼ���awk�����Ƿ���ĺ����á����ǿ϶��ġ���������ͨ�û����ı��༭�кܴ�����������Ű�ʲô�ġ�����ϵͳ����ԱAWK��һ���dz���Ҫ��Ӧ�á���㿴һ��/var/yp/Makefile ���ǿ�һ��ϵͳ�ij�ʼ���ű���AWK�ڵ�����ʹ���š�

 

awk���

���ѼDz��������ʲôʱ�������й�AWK����Ϣ���ҵ�һ��ͬ��Ҫ������Cray�������������������Cray�Ϲ���AWK�������������٣���˵��������������AWK��������������������Ҫ�ġ�
�ܳ�ʱ���Ժ������ٴο�ʼ���ǵĹ�����һ��ͬ�����������AWK������ļ�����ȡ�����еĵ�һ�дʣ�

awk '  '{print $1}'   file


���Dz��Ǻܼ򵥣�����һ���򵥵IJ���������Ҫ����C�����еĸ��ӱ�̡�һ��AWK����ͽ���ˡ�

������֪������δ��ļ��з���һ�к����DZ��������������ļ����ƵIJ�������files_list��.new��:

ls -1 pattern | awk '{print "mv "$1" "$1".new"}' | sh

... ����,�����sed��grepһ��ʹ��,�ǽ����Ϊһ���dz����õĹ���.

  1. ���ļ����ڽ����滻��
    ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh
    (����ʱ��������Ҳ�ᷢ�����������ļ���Ϊ file_old_and_old��ʱ��)
  2. ɾ��ָ���ļ���(�����ʹ�� rm ���������,��ҩָ������ 'rm -r')
    ls -l * | grep -v drwx | awk '{print "rm "$9}' | sh
    (�����������Ϊ������ļ����ͷ���Ȩ�޵�����ʧ��.) ������������homeĿ¼����С�IJ��������ǿ�����ɾ���ļ���
  3. ɾ��ָ��Ŀ¼��
    ls -l | grep '^d' | awk '{print "rm -r "$9}' | sh
    (����Ϊ�����κ�����¶���������,�������ǿ����� ls -p | grep /$ | wk '{print "rm -r "$1}'�������иĽ�.)
    ������������homeĿ¼����С�IJ��������ǿ�����ɾ���ļ���

�������������ģ�AWK����Ҫ������ͬ�ļ���ʱ�����á�����дһ��AWK����Ҫ���ظ�20��ͬ���IJ���������˼��

ȷ�е�˵,��������˵ awk-command,��awk����������ͨ����˵����������.awk��һ�ֿɱ������,AWK��һ�����﷨�ĺܶ෽����C��������ı������ԡ�����awk���ͳ�����н��͵ġ�

����awk���ͳ����������﷨��

# gawk --help
Usage: gawk [POSIX or GNU style options] -f progfile [--] file ...
        gawk [POSIX or GNU style options] [--] 'program' file ...
POSIX options:          GNU long options:
        -f progfile             --file=progfile
        -F fs                   --field-separator=fs
        -v var=val              --assign=var=val
        -m[fr] val
        -W compat               --compat
        -W copyleft             --copyleft
        -W copyright            --copyright
        -W help                 --help
        -W lint                 --lint
        -W lint-old             --lint-old
        -W posix                --posix
        -W re-interval          --re-interval
        -W source=program-text  --source=program-text
        -W traditional          --traditional
        -W usage                --usage
        -W version              --version

Report bugs to [email protected],
with a Cc: to [email protected]

����Կ�������������õ���������������������,ȥ�����������ǿ��Խ�����д��һ���ļ���Ȼ�������-f���С��������н��б��������õ�-v var=val�����DZ�������ӳ��������ԡ�������˵����AWK�ʺ��ڹ���������Ҳ���ǰ���Ϣ�ֵ�fields���ֶΣ���record����¼����

���Ե�˵,Awk���������������.Ҳ����һЩ�������ֶκͼ�¼�������Ϣ.�������ĺô��Ǽ�¼���ֶεĶ����DZȽ����ġ�

AWK����ǿ�󡣱�����ɶ�һ�еļ�¼���в�����������һ���ϲ���ʮ���ϸ�Ϊ��˵����һ�㣬���ǽ����������˵���Ե����ӣ�

������һ������,ֻ��Ҫ������ӽ������,�����д����.

��Ҳ��awkʵ���������ܣ��������ݿ��е���Ϣ�Զ�����ҳ�棩������ƾ����֪���ģ�awk��̻��������ܶ��¡�
����ķ�������������ɡ�

 

һ�����⣺

 

(����취)

������awk��Ҫһ���ܺõ��Ʊ���Ϣ��û�пո�awk�����ڶ��������Ϲ������������Լ�Ӧ��awk��������ʱ�Ⲣ����һ�����⣺ѡ��һЩ������ַ����зָ֮���ڽ����޸ġ���������Ѿ��������������������ͻ���һ�����鷳�������±�:
1234  HD 13324  22:40:54 ....
1235  HD12223   22:43:12 ....

��awk���������������ѡ����е����⾹��һ���������ֵ����⡣Inputs like this sometimes are mandatory. Besides, this is quite common because data input is not homogeneous whatsoever. �������ֻ��һ�д�������������,���а취���.(�����λ֪����μ��Ĺ���һ�����Ķ���,�������!).
һ�����DZ�Ȼ���������ʶ�����.�ڶ����ֶ���һ���������а����˲��������Ŀո񡣼������Ǿ������ֵģ����DZ������������һ�н�����ѡ��

��Ȼ�ҷ�������Ҫ�����������һ��,����Awk֪����ǰ��¼���ж��ٸ���.����������ܹ��������һ��.(��ʱ�� $9, ��ʱ�� $11, ������ NF). �������������:
{
  printf $NF
  $NF = ""
  printf " "$0"\n"
}


�۾��ṩ��һ����ͬ�����������.��ֻ�����ǰ����һ��ת�Ƶ���һ��λ�á���Ȼ����ڵ����������ֶ�Ҳ�Ǻ����׵ģ����Ƕ����ڶ�ֵ�ֶκ����һ���ֶ�Ҳ�Ƿ���ġ�
Ӧ�����ְ����һ�зŵ���һ�е�λ�õķ���,���ǾͿ��Խ����������.
��������������Ϳ�������취.

 

�����ε�AWK

 

����������������

����Ϊֹ�����е����Ӷ��Ǵ��������ļ��������еġ��������ֲ�����˵�ģ�AWK�ǿ���ֻ���������еġ�ֻ��������������ʱ�򣬲Ž���ִ�С�ƥ���������Էdz�����һ���򵥵��߼�����������ɵ�������ı�׼����ʽ����������е��ֶΡ�

 

��Ϊ�ɱ�����Ե�AWK

���������������һ����awkʵ�������е���Ҫ����ʽ���ƽṹ��ͬʱ���ò�������Ԥ����ĺ������������ֺ��ַ��������﷨��C�������.

AWK��ȻҲ��ͨ���ؼ���function�������û�����ĺ���������һ��ķ��ű����⣬awkҲ���Բ������顣

 

���ÿ�

�������е�������һ�������ںܶೣ�õĺ�����Ҫ�ڴ����о������ƺ�ճ����������Ϊʲô�����ĸ������GNU��awk�������ڳ��������ÿ��ļ������Ⲣ���ڱ��ĵ����۷�Χ֮�ڡ�

 

����

��Ȼ��awk����һЩ����������ͬĿ�ĵĹ���һ��ǿ�󣬵�����������ŵ��ǿ����ں̵ܶ�ʱ����������С������������ǵ����⡣

AWK�dz��ʺ�����Ŀ�ĵ�������Ҫ��������һ��һ�еĶ������ݣ������ַ��͸�ʽ���в�����

��/etc/passwd �������ļ��Ϳ�����awk�������и�ʽ���������������IJ���awk���ٺ��ʲ������ˡ�

��Ȼ���ⷽ�沢����ֻ��AWK��PerlҲ��һ���dz������ľ����ߣ�������ֵ��ȥ�˽�һЩAWK�ļ��ɡ�

 

������Ϣ

��ֻ������һЩ�ܻ��������Ҳû�кܺõ�������������ڸ��㷺���Ķ����ҵ�����Ķ�����

ͨ�������е�unix���ж��ἰ��awk����������������ϸ�Ķ�����н��ܡ�������������������������ͷ���飬����Զ��֪��ʡôʱ������ҵ�һЩ���õĶ�����


Webpages maintained by the LinuxFocus Editor team
© Javier Palacios Bermejo
LinuxFocus 1999
Translation information:
es -> -- Javier Palacios Bermejo
es -> en Javier Palacios Bermejo,Ruben Sotillo, Manuel Rodriguez
en -> chinese wang zhuohao

1999-11-02, generated by lfparser version 0.8