首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在shell文件中使用awk的$0变量

如何在shell文件中使用awk的$0变量
EN

Stack Overflow用户
提问于 2017-06-22 15:58:14
回答 1查看 1.5K关注 0票数 2

1.我的shell文件是

代码语言:javascript
复制
 [root@node3 script]# cat hi.sh
 #!/bin/bash
 strings="sdsf sdsda sdsadx"
 echo `awk "{print substr($0,0,9)}"<<<$strings`

2.exe我的shell文件

代码语言:javascript
复制
[root@node3 script]# sh hi.sh 

awk: {print substr(hi.sh,0,9)}

awk:                 ^ syntax error

awk: 致命错误: 0 是 substr 的无效参数个数

那么如何在shell文件中使用awk的$0呢?

$0默认文件的名称。

另一个问题。我想使用关于awk的变量$0,但是shell file.what中的另一个$variable我该怎么办呢?

代码语言:javascript
复制
$ cat hi.sh 
#!/bin/bash 
strings="sdsf sdsda sdsadx" 
num=9 
echo \`awk '{print substr($0,0,$num)}' <<< $strings\`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 16:16:39

您的脚本的问题是在awk中使用了双引号。将它们替换为单引号。

当您使用双引号时,其中的$0将被视为脚本的第一个参数,在本例中为脚本名称hi.sh。如果使用单引号,则可以使用$0作为awk参数来显示整行。

此外,这里不需要echo,您可以只使用awk '{print substr($0,0,9)}' <<< $strings

代码语言:javascript
复制
$ cat hi.sh
#!/bin/bash
strings="sdsf sdsda sdsadx"
#echo `awk '{print substr($0,0,9)}' <<< $strings` --echo not needed
awk '{print substr($0,0,9)}' <<< $strings
$
$ sh hi.sh
sdsf sdsd
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44693495

复制
相关文章

相似问题

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