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 bug-gnu-utils@prep.ai.mit.edu,
with a Cc: to arnold@gnu.ai.mit.edu

�����Կ��������������õ���������������������,ȥ�����������ǿ��Խ�����д��һ���ļ���Ȼ��������-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