首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk +将值导出到awk

awk +将值导出到awk
EN

Stack Overflow用户
提问于 2010-07-05 18:20:52
回答 4查看 744关注 0票数 3

下面的程序需要打印单词

代码语言:javascript
复制
First 

Second 

Third

但是因为awk中的参数没有从“for”循环中获得值,所以它的print all word:

代码语言:javascript
复制
     First second third
     First second third
     First second third

如何修复awk以便打印第一个“第一”字、第二个“第二”字等等

THX

雅艾尔

代码语言:javascript
复制
 program:

 for i in 1 2 3
 do
 echo "first second third" | awk '{print $i}'
 done
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-05 18:26:58

您可以像这样更改代码:

代码语言:javascript
复制
for i in 1 2 3
do
 echo "first second third" | awk -v i=$i '{print $i}'
done

使用shell中的变量'i‘。

您还可以更改记录分隔符(RS)以获得相同的结果:

代码语言:javascript
复制
echo "first second third" | awk 'BEGIN{RS=" "} {print $1}'

但我不确定这是不是你要找的。

票数 2
EN

Stack Overflow用户

发布于 2010-07-05 18:55:19

你可以这样做:

代码语言:javascript
复制
for a in First Second Third
do
    awk 'BEGIN { print ARGV[1] }' $a
done

或者你可以这样做:

代码语言:javascript
复制
for a in First Second Third
do
    awk -v arg=$a 'BEGIN { print arg }'
done
票数 2
EN

Stack Overflow用户

发布于 2010-07-05 19:07:02

不要做不必要的事情。不需要shell for循环!只要用awk就行了!

$ echo "first second third" | awk '{for(i=1;i<=NF;i++)print $i}'

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3178703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档