by Javier Palacios Bermejo About the author: Javier����������ѧ���������ķ�������ѧ�о�.�����︺������һЩ����վ.�����ڲ��ŵ��ճ�����ʵ��Unixϵͳ�����ɵ�.������һЩ��������������,��ѡ����slackware Linux. Linux�Եñ�Ŀǰ���е�����Unixϵͳ����. Content: |
![[Ilustration]](../../common/images/illustration103.gif)
Abstract:
���Ľ�����һЩʹ��AWK�����š���������һ�ݽ̲ģ��������н�����һЩʹ�õ����ӡ�
���������ڿ���Guido Socher��linuxfocus�Ϸ����ļ�ƪ���£�����д��ƪ���¡���Guido Socher����������һƪ�ǽ����ļ����Һ����������ģ�������ʶ��������ֻ����һ������ʹ�������С��ܶ�ʱ��Ư����ͼ���û����治�ܸ����������������ν��еģ�����windows���������������ķ���������һƪ�����ǹ��ڹ�������ʽ�ġ������ڴ�����û�й������ἰ�����ı���ʽ����ҲҪ��awk�Լ������������sed��grep�����˽�ܶࡣ
�����Ĺؼ���awk�����Ƿ����ĺ����á������ǿ϶��ġ���������ͨ�û����ı��༭�кܴ������������Ű�ʲô�ġ�����ϵͳ����ԱAWK��һ���dz���Ҫ��Ӧ�á����㿴һ��/var/yp/Makefile ���ǿ�һ��ϵͳ�ij�ʼ���ű���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����õĹ���.
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh
ls -l * | grep -v drwx | awk '{print "rm "$9}' | sh ls -l | grep '^d' | awk '{print "rm -r "$9}' | sh ls -p | grep /$
| wk '{print "rm -r "$1}'�������иĽ�.) �������������ģ�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����ǿ�������ɶ�һ�еļ�¼���в�����������һ���ϲ���ʮ���ϸ���Ϊ��˵����һ�㣬���ǽ�����������˵���Ե����ӣ�
��ӡ����
Ҳ����Ҫ��ӡһЩ�õ��ı��������磬һ��������������IP������ַ���б����������������൱����ʱ��ȡ�ͱ��ú����ѣ���������LaTeX��������һ���ȽϺõĸ�ʽ��ӡ���������������б��ܼ����Ǵ�ӡȴ���鷳��
BEGIN {
printf "LaTeX preample"
printf "\\begin{tabular}{|c|c|...|c|}"
}
|
{ printf $1" & "
printf $2" & "
.
.
.
printf $n" \\\\ "
printf "\\hline"
}
|
END {
print "\\end{document}"
}
|
��ȷ�ⲻ��һ����ͨ���⣬���Ǿ�Ҫ��ʼ������...
(The double backslashes (\) are necessary because it's the shell escape
character)
���������ļ�
SIMBAD��һ������Ŀ�����ݿ⣬���ṩ��һ�������������е�λ�á���ǰÿ�������뻭��������Щ������ͼ�Խ����о����������������������ֲ����ѽ����������ı��ļ��1��Ϊÿһ�����崴��һ���ļ���2�������������б��������������������õ�һ���ܳ��IJ�ѯ��¼��־������Ҫ���еڶ�����ʱ������awk��������־����Ȼ������Ҫ�ҵ��������ֵĹ�ͬ�㡣
|
( $1 == "====>" ) {
NomObj = $2
TotObj = $4
if ( TotObj > 0 ) {
FS = "|"
for ( cont=0 ; cont<TotObj ; cont++ ) {
getline
print $2 $4 $5 $3 >> NomObj
}
FS = " "
}
}
|
| NOTE:��ʵ�ϣ�Ŀ�����������ͻأ����������൱���ӣ���ֻ������һ��˵�������Ӷ��ѡ� | |
Playing with the mail spool
BEGIN {
BEGIN_MSG = "From"
BEGIN_BDY = "Precedence:"
MAIN_KEY = "Subject:"
VALIDATION = "[MONTH REPORT]"
HEAD = "NO"; BODY = "NO"; PRINT="NO"
OUT_FILE = "Month_Reports"
}
{
if ( $1 == BEGIN_MSG ) {
HEAD = "YES"; BODY = "NO"; PRINT="NO"
}
if ( $1 == MAIN_KEY ) {
if ( $2 == VALIDATION ) {
PRINT = "YES"
$1 = ""; $2 = ""
print "\n\n"$0"\n" > OUT_FILE
}
}
if ( $1 == BEGIN_BDY ) {
getline
if ( $0 == "" ) {
HEAD = "NO"; BODY = "YES"
} else {
HEAD = "NO"; BODY = "NO"; PRINT="NO"
}
}
if ( BODY == "YES" && PRINT == "YES" ) {
print $0 >> OUT_FILE
}
}
|
Ҳ���������ھ�������һ���ʼ��б���������һЩ�ر�����Ϣ���ύ�������б���������'[MONTH
REPORT] month , dept'Ϊ�����ģ���Ҳ����һ������ĩ���Ǻ�Ȼ��Ҫ����������������Ϣ�ֱ����š� ���Ϳ��������ߵ�awk��������mail spool�� ʹ��ÿһ�ݱ��汻�����������ļ�����ζ�����������Ĵ��롣 |
| NOTE: �������Ӽ���mail spool�����������ĸ�ʽ���˳������ҵ��ʼ������á���ʵ���Ҳ���֪�������ĸ�ʽ,�������������ҵİ�װ��������.(����,Ҳ����һЩ���ֵ�������,����������.) |
������һ������,ֻ��Ҫ�������ӽ�������,������д����.
��Ҳ��awkʵ���������ܣ��������ݿ��е���Ϣ�Զ�����ҳ�棩������ƾ����֪���ģ�awk���̻��������ܶ��¡�
�����ķ��������������ɡ�
����Ϊֹ�����е����Ӷ��Ǵ��������ļ��������еġ��������ֲ�����˵�ģ�AWK�ǿ���ֻ���������еġ�ֻ��������������ʱ�Ž���ִ�С�ƥ���������Էdz������һ�����������������ɵ��������ı�����ʽ�����������е��ֶΡ�
����������������һ����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:
|
1999-11-02, generated by lfparser version 0.8