shell脚本,awk数组之如何处理多个文件。

[[email protected] awk]# seq 10|xargs -n 2 > file
[[email protected] awk]# seq 10  -1 1|xargs -n 2 > file1
[[email protected] awk]# cat file
1 2
3 4
5 6
7 8
9 10
[[email protected] awk]# cat file1
10 9
8 7
6 5
4 3
2 1
[[email protected] awk]# cat file |awk ‘{print $1}‘
1
3
5
7
9
[[email protected] awk]# cat file1 |awk ‘{print $2}‘
9
7
5
3
1
[[email protected] awk]# cat file |awk ‘{print $1}‘>file3

[[email protected]st awk]# cat file1 |awk ‘{print $2}‘>file4

[[email protected] awk]# paste file3 file4
1    9
3    7
5    5
7    3
9    1
[[email protected] awk]# paste file3 file4|tr "\t" " "
1 9
3 7
5 5
7 3
9 1
[[email protected] awk]# paste file3 file4|tr "\t" " ">file5
[[email protected] awk]# cat file5
1 9
3 7
5 5
7 3
9 1

[[email protected] awk]# awk ‘1‘ file
1 2
3 4
5 6
7 8
9 10
[[email protected] awk]# awk ‘1‘ file1
10 9
8 7
6 5
4 3
2 1
[[email protected] awk]# awk ‘1‘ file1 file1
10 9
8 7
6 5
4 3
2 1
10 9
8 7
6 5
4 3
2 1
[[email protected] awk]# awk ‘{print NR}‘ file file1
1
2
3
4
5
6
7
8
9
10
[[email protected] awk]# awk ‘{print NR,FNR}‘ file file1
1 1
2 2
3 3
4 4
5 5
6 1
7 2
8 3
9 4
10 5
[[email protected] awk]# 

[[email protected] awk]# awk ‘NR==FNR{a[NR]=$1}NR!=FNR{print a[FNR],$2}‘ file file1
1 9
3 7
5 5
7 3
9 1
[[email protected] awk]# 
时间: 2024-11-10 08:29:43

shell脚本,awk数组之如何处理多个文件。的相关文章

shell脚本监控Flume输出到HDFS上文件合法性

在使用flume中发现由于网络.HDFS等其它原因,使得经过Flume收集到HDFS上得日志有一些异常,表现为: 1.有未关闭的文件:以tmp(默认)结尾的文件.加入存到HDFS上得文件应该是gz压缩文件,以tmp为结尾的文件就无法使用: 2.有大小为0的文件,比如gz压缩文件大小为0,我们单独拿下这个文件解压发现是无限循环压缩的...这个也不能直接用来跑mapreduce 目前发现上述两种情况,其它还暂未发现.至于出现上述情况还没明确原因,且这两种情况都会影响hive.MapReduce的正常

shell脚本解析8(练习2)-----文件个数统计

#!/bin/bash counter=0 #变量files遍历一遍当前文件夹 for files in * do #判断files是否为文件,如果是,counter变量值加1,再赋值给自己. if [ -f "$files" ] then counter=`expr $counter + 1` fi done echo "There are $counter files in `pwd`" 执行结果: 注意:表达式counter=`expr $counter +

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开

shell 脚本-关联数组

shell 的关联数组 Shell Associative Array   bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制.shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素.这种数组叫做关联数组(associative array).关联数组的下标和值称为键值对,它们是一一对应的

Shell脚本实现DB2数据库表导出到文件

该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. 1 #!/usr/bin/env sh 2 3 DBSCHEMA=$1 4 DBUSER=$2 5 DBPASSWORD=$3 6 TABLENAME=$4 7 FILEPATH=$5 8 DELIMITER=$6 9 EXPORTLIMIT=$7 10 11 SQLERR="NO ERROR MSG&

shell 脚本之数组 和 yum 【下】

数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的 集合. 数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式 ,即为关联索引,bash4.0版本之后开始支持. bash的数组支持稀疏格式(索引不连续) 声明数组: declare -a ARRAY_NAME declare -A ARRAY_NAME: 关联数组 数组赋值 数组元素的赋值: (1) 一次只赋值一个元素: ARRAY_NAME[INDEX]=VA

18 shell脚本--009数组与字符串

回顾: 函数:写一个代码块,用来重复调用的: 1.函数的写法格式 2.参数,在函数名后面直接加,即可:如果在外面 abc(){ 函数体 [email protected] } abc 1 2 3 4 5 :wq a.sh 1 2 3 4 5 6 3.变量 local本地变量 local i=1 如果在函数体外同样也定义了一个相同的变量 扩展:source / bash / chmod+x 全路径 [父子进程的问题] 4.return 结束函数体的执行 和exit 的却别 return 和 exi

shell脚本之数组

数组:    一堆变量的集合. 声明:        declare -a ARRAYNNAME        其中每个变量为ARRAYNAME[INDEX]        INDEX从0开始. 赋值:        ARRAYNAME[INDEX] = VALUE        ARRAYNAME = (VALUE1 VALUE2 ...)        ARRAYNAME = ( [INDEX1]=VALUE1 [INDEX2]=VALUE2 ...) 特殊引用方法:        ${#A

Shell脚本(五)数组

平时写脚本还没有用到过数组,暂时先记录下用法. #!/bin/bash array1=(1 2 3 4 5) array1_length=${#array1[@]} echo "array1 length: ${array1_length}" for item in ${array1[@]} do echo "current item of array1: ${item}" done array2[0]="test0" array2[1]=&qu