1

我有一个小问题,下面的代码工作正常,但现在它什么也没显示,我不太明白这个错误在哪里。

> #! /bin/bash

awk -F, '       FILENAME = $1 { FS = ":" }

        { print $1 " "  $2 " "  $3 " " $4 }





                '
  • 我想添加一些选项,例如: ./search thefile -C

我希望 reg ex -C 像一个选项并显示一些特定的东西。

有什么想法吗?

谢谢

4

2 回答 2

0

只是为了让你开始。. .

如果文件 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变量告诉您​​该行来自哪个文件。在您确信事情按预期工作后,您也许可以将其删除。

于 2012-04-22T13:54:02.807 回答
0

你绝对不想这样做:

FILENAME = $1

你可能是说

FILENAME == $1

除此之外,如果没有一些上下文,包括示例输入和预期输出,脚本就没有真正意义。

于 2012-10-18T00:05:19.580 回答