shell脚本之awk基本用法

脚本文件:

[email protected]:/study/shell# cat awk_test.sh
#!/bin/sh

awk_test_fun()
{
	echo "\$0:"
	echo $0
	echo "\$1:"
	echo $1
	echo "\$2:"
	echo $2
	echo "\$3:"
	echo $3
	echo "awk_test.txt content:"
	cat awk_test.txt
	echo "result of:'akw -F\" \" \'/^aaa/{print \$1,\$2,\$3}\' awk_test.txt"
	awk -F" " '/^aaa/{print $1,$2,$3}'  awk_test.txt
}

awk_test_fun hello world good
[email protected]:/study/shell# 

测试文件awk_test.txt:

[email protected]:/study/shell# cat awk_test.txt
aaa bbb ccc
ddd eee fff
111 222 333

执行结果:

[email protected]:/study/shell# ./awk_test.sh

$0:

./awk_test.sh

$1:

hello

$2:

world

$3:

good

awk_test.txt content:

aaa bbb ccc

ddd eee fff

111 222 333

result of:‘akw -F" " \‘/^aaa/{print $1,$2,$3}\‘ awk_test.txt

aaa bbb ccc

[email protected]:/study/shell#

时间: 2024-10-22 15:02:05

shell脚本之awk基本用法的相关文章

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

shell脚本接参数优美用法

shell脚本接参数优美用法 学习 bash shell脚本接参数优美用法 2.1 getopt命令的用法 2.2 示例 1. 示例脚本 2. 转载阅读 1. 示例脚本 #!/usr/bin/env bash#Bash脚本接参数优美用法#Create on 2016-11-18#@author: Chinge_Yang args="$*" function usage(){    echo "Usage: `basename $0` options (-h HOST|-n N

vim,grep,shell脚本实例及find用法

vim,grep,shell脚本实例及find用法 1.定义一个对所有用户都生效的命令别名 定义一个对所有用户都生效的命令别名需要更改全局配置文件/etc/bashrc, 例如,我们以root用户编辑/etc/bashrc,在文件的最后一行增加alias like='ls' 当我们新启一个shell进程的时候,列出命令别名,会发现刚定义的别名like [[email protected] ~]# tail /etc/bashrc . "$i" >/dev/null fi fi d

shell脚本之awk工具的使用

在Linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被我们运维人员广泛应用于shell脚本,完成各中自动化配置任务. awk可以直接处理目标文件,也可以和sed命令一样通过"-f"选项读取脚本对目标文件进行处理. awk的语法格式如下: sed命令常用于整行处理,而awk比较倾向于将一行分成多个字段,awk可以使用逻辑操作符"&&

Shell脚本中‘‘ () {} [] " " [[]] ``的不同用法

[[]]在脚本的使用中作用一是来匹配扩展正则表达式用法[[ =~ ]]例如: [[email protected] data]# touch f1.sh[[email protected] data]# file=f1.sh ;[[ $file =~ \.sh$ ]][[email protected] data]# echo $?0[[email protected] data]# file=f1.shsh ;[[ $file =~ \.sh$ ]][[email protected] dat

shell脚本中case的用法

shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char in C | c ) command 1 ;; #每一个选择都以双 ;; 结束 M | m ) command 2 ;; * ) # * 未匹配到相符的其他值 echo "error" ;; esac #case的结束语句是以esac 结束 下面结合一个简单的小功能使用,脚本中同时也用到

shell脚本,awk实现跳过文件里面的空行。

1.用awk '{if(!NF || /^#/){next}}1' file11 实现对文件里面的空行进行跳过操作,并输出结果. 2. awk '{if(!NF || /^#/){next}}1' file11 实现对文件里面的空行和#开头的行进行跳过操作,并输出结果.

shell脚本,awk实现文件a的每行数据与文件b的相对应的行的值相减,得到其绝对值。

解题思路 文件 shu 是下面这样的.220 34 50 70553 556 32 211 1 14 98 33 文件 jian是下面这样的.1082 想要得到结果是下面这样的.210 24 40 60545 548 24 131 1 12 96 31 用awk来得到想要的结果 [[email protected] study]# awk 'NR==FNR{a[NR]=$1;next}NR!=FNR{for(i=1;i<=NF;i++){$i>a[FNR]?$i=$i-a[FNR]:$i=a[

shell脚本,awk实现行列转换

[[email protected] study]# cat file 张三 语文 81 张三 数学 81 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 怎么实现为下面的排序??? 81 81 76 90 81 100 90 语文 数学 语文 数学 语文 数学 英语 张三 张三 李四 李四 王五 王五 王五 以下是思路分析: 张三 语文 81 张三 数学 81 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90