AWK 使用循环取出所有的字段

1. 如果按照分隔符所分割的字段的长度不定则需要用到使用循环来处理每一个字段;


要处理的文本

[root@hadoop usr]# head -n 3 business.txt
AIR     2013-09-01      4403    1348662.0
AIR     2013-09-02      26449   6701268.0
AIR     2013-09-03      45262   1.3755425E7

循环处理

[root@hadoop usr]# head -n 3 business.txt | awk '{for(i=1;i<=NF;i++){print $i;}}'
AIR
2013-09-01
4403
1348662.0
AIR
2013-09-02
26449
6701268.0
AIR
2013-09-03
45262
1.3755425E7

以上可以做到列转行(另一种列转行的更加简单的方式是改变RS)

不转行

[root@hadoop usr]# head -n 3 business.txt | awk '{for(i=1;i<=NF;i++){to=to"||"$i};print to}'
||AIR||2013-09-01||4403||1348662.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0||AIR||2013-09-03||45262||1.3755425E7


### 回答1: awk命令可以用来截取出指定字段。具体操作如下: 1. 使用awk命令时,需要指定分隔符,通常使用空格或制表符作为分隔符。 2. 使用awk命令时,需要指定要截取的字段,可以使用$符号加上字段编号来指定。 例如,如果要截取出文件中第二列的内容,可以使用以下命令: awk '{print $2}' filename 其中,$2表示第二列,print表示输出该列的内容,filename表示要操作的文件名。 3. 如果要截取出多个字段,可以使用逗号分隔多个字段编号。 例如,如果要截取出文件中第二列和第三列的内容,可以使用以下命令: awk '{print $2,$3}' filename 其中,$2和$3表示第二列和第三列,逗号分隔表示输出这两列的内容,filename表示要操作的文件名。 4. 如果要根据某个条件来截取字段,可以使用if语句来实现。 例如,如果要截取出文件中第二列大于10的行的内容,可以使用以下命令: awk '{if($2>10) print $}' filename 其中,$表示整行内容,if语句判断第二列是否大于10,如果是则输出整行内容,filename表示要操作的文件名。 ### 回答2: 在Unix和Linux操作系统中,awk命令是一种用于文本处理的强大工具,它可以抽取或截取指定字段,并将其打印出来。awk命令是一种面向行的语言,它按照行处理文件或输入流,可以自动处理文件的每一行,并通过字段的分隔符将其分成不同的部分。 在 awk 命令中,我们可以使用 $ 字符来引用每个字段。例如,$1代表第一个字段,$2代表第二个字段,以此类推。另外,我们还可以使用特定的分隔符来划分字段。默认的分隔符是空格,但是我们可以通过使用-F选项来指定其他字符作为分隔符,例如-F':'代表使用冒号作为分隔符。 以下是一个示例 awk 命令,用于从文件中提取姓名和年龄字段: ``` awk -F':' '{print $1, $3}' filename ``` 在此命令中,-F':'表明使用冒号作为分隔符,$1和$3代表第一和第三个字段,而print语句则打印出所选字段。 另外,我们还可以使用其它条件来过滤和选取数据,例如awk的if语句,可以根据条件过滤出符合要求的数据。 总的来说,awk命令是一种非常强大的文本处理工具,能够对大量文本数据进行快速处理,并提取所需的信息。在实际的数据处理过程中,使用 awk 命令可以大大提高工作效率,是工程师和研发人员不可或缺的工具之一。 ### 回答3: awk是一种文本处理工具,可以用来从文本文件中提取数据并进行分析。它可以将输入文件逐行读取,并进行特定的处理操作。其中,最常用的操作是截取出指定字段。 下面是一个示例命令: ``` awk '{print $3}' testfile.txt ``` 在这个命令中,awk读取名为testfile.txt的文件,并从中提取第3个字段。其中,字段是以空格或制表符作为分隔符的序列。 awk命令可以使用不同的分隔符来截取字段。例如,使用冒号作为分隔符: ``` awk -F: '{print $1}' testfile.txt ``` 在这个命令中,awk读取testfile.txt文件,并使用冒号作为分隔符来提取第一个字段。 除了提取单个字段之外,awk还可以根据条件进行过滤和筛选。例如,根据第4个字段的值进行筛选: ``` awk '$4 > 20 {print $1,$4}' testfile.txt ``` 在这个命令中,awk只会输出第4个字段的值大于20的行,并且只会提取第1个和第4个字段的值。 总之,awk命令可以用来从文本文件中提取数据,并可以使用不同的分隔符和条件进行筛选和过滤。它是一种非常强大和灵活的文本处理工具,在数据处理和文本分析中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值