我有一个小问题,下面的代码工作正常,但现在它什么也没显示,我不太明白这个错误在哪里。
> #! /bin/bash
awk -F, ' FILENAME = $1 { FS = ":" }
{ print $1 " " $2 " " $3 " " $4 }
'
- 我想添加一些选项,例如: ./search thefile -C
我希望 reg ex -C 像一个选项并显示一些特定的东西。
有什么想法吗?
谢谢
只是为了让你开始。. .
如果文件 test.dat 看起来像这样
100:200:300:400
然后这个 shell 脚本将打印每个值。
#! /bin/bash
awk 'BEGIN { FS = ":" } NF==4 && $0 ~/:/{ print FILENAME, $1 " " $2 " " $3 " " $4 }' $1
使用单引号参数调用 shell 脚本“test.sh”,如
./test.sh 'test*.dat'
该测试NF>=4确保在尝试打印之前至少有四个字段。正则表达式匹配$0~/:/确保该行至少有一个冒号。(可能有更好的方式来表达你想要做的事情。)
该FILENAME变量告诉您该行来自哪个文件。在您确信事情按预期工作后,您也许可以将其删除。
你绝对不想这样做:
FILENAME = $1
你可能是说
FILENAME == $1
除此之外,如果没有一些上下文,包括示例输入和预期输出,脚本就没有真正意义。