在Linux中使用AWK

时间:2015-12-08 04:03:29

标签: linux shell awk

请解释shell脚本中使用的以下行,

awk -F\| -v src=$storekey 'src==$41' $SRC_Path >> $DST_Path

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,首先${variable}是一个shell变量,所以那些会在你的脚本中定义得更高,即

storekey =“1234”或其他什么

你可以在你的shell(linux或命令行终端)上试试这个

型:

$ storekey="foo"
$ echo $storekey

所以你的大部分问题都与变量和命令行有关,它们混淆了它们的使用方式,如果你在命令行上替换变量进行测试,你可以测试它以找出它们正在做什么。

本质上,awk是一个流解析工具,所以如果你有一个10列的文件,带有已知的分隔符,例如“,”或“|”您可以向awk询问要打印或输出的特定列。这就是下面发生的事情,但它被自定义shell变量的存在所迷惑。

然后分解命令行awk正在解析“|”由$ storekey变量定义的分隔输入(-F \ |),取src == $ 41的列(这有一些对输入数据的引用),从$ SRC_PATH(目录)到$ DST_PATH(另一个目录或路径)

如果你可以分享更多的shell脚本,我可以提供更深入的答案。

顺便说一下,您还可以使用命令

找到更多信息
  • man awk
  • info awk
从你的命令行

,对于那些不太熟悉* nix变体的人来说,这些有点神秘。