请解释shell脚本中使用的以下行,
awk -F\| -v src=$storekey 'src==$41' $SRC_Path >> $DST_Path
谢谢!
答案 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变体的人来说,这些有点神秘。