在图形的参数上有这样的命令。我无法理解它。它什么也不打印。在abinitio帮助页面中,我也找不到-f的意思,这就是我在这里的原因。你能帮助我理解它吗
$([ -f $FILE_PATH/$SUBJECT_AREA_X/`echo "$FILE_PATTERN_X" | awk -v RUNDATE=$RUN_DATE -F'_' '{for(i=1; i<=NF-1;i++) { printf "%s%s",$i, FS} { printf "%s%s\n", RUNDATE, substr($NF,length(RUNDATE)+1,length($NF)) }}'` ]
字符串
2条答案
按热度按时间svujldwt1#
([ -f ... ])
:这是一个检查文件是否存在的条件表达式。-f标志用于测试给定路径是否对应于常规文件。$FILE_PATH/$SUBJECT_AREA_X/...:
这部分命令构造文件的路径。它似乎涉及到像$FILE_PATH
和$SUBJECT_AREA_X
这样的变量来定义目录结构。echo "$FILE_PATTERN_X" | awk -v RUNDATE=$RUN_DATE -F'_' '...awk command...'
:此部分使用awk命令处理$FILE_PATTERN_X的内容。它在下划线(-F '_')上拆分输入,然后通过将$RUN_DATE变量追加到倒数第二个字段(不包括最后一个字段,假定它是与日期相关的部分)来重新构造文件名。整个awk命令被封装在反引号(``)中,这意味着这个awk命令的输出被替换到整个命令中。
生成的构造文件路径和名称用作
[ ]
条件表达式中-f
测试的参数。5lwkijsr2#
这是一个shell解释的参数。最好写实际的PDL。很难准确地弄清楚它在寻找什么文件,但你可以使用参数来构建基础,然后在PDL中使用string_split,string_join和file_exists来测试文件是否存在。