繁体   English   中英

awk和bash var /命令交互

[英]awk and bash var / command interaction

我想获得一种使用bash脚本创建csv文件的最简单方法,该脚本接收两个参数:$ var1是要列出的文件夹,$ var2是要匹配的简单字母数字字符串模式。

当前版本选择正确的文件并编写一个优质的csv文件,但我想为每个文件名添加一个路径(路径存储在var1中),并使用ls -F标签编写“可执行”是/现在字段选项。

  ls -lF "$var1"/*"$var2"* | awk {'print $9";$5";"$2";"$1'} 

使用var1='.'; var2='sh' var1='.'; var2='sh'我得到

./2.sh*;1283;1;-rwxr--r--
./2.sh~*;1285;1;-rwxr--r--
./3.sh*;913;1;-rwxr--r--
./3.sh~*;849;1;-rwxr--r--
./4.sh*;411;1;-rwxr--r--
./4.sh~*;411;1;-rwxr--r--
./5.sh*;413;1;-rwxr--r--
./5.sh~*;386;1;-rwxr--r--

这类似于我所需要的。 如果我在bash目录中,则需要此输出

bash/2.sh;1283;1;-rwxr--r--;Yes
bash/2.sh~;1285;1;-rwxr--r--;Yes
bash/3.sh;913;1;-rwxr--r--;Yes
bash/3.sh~;849;1;-rwxr--r--;Yes
bash/4.sh;411;1;-rwxr--r--;Yes
bash/4.sh~;411;1;-rwxr--r--;Yes
bash/5.sh;413;1;-rwxr--r--;Yes
bash/5.sh~;386;1;-rwxr--r--;Yes

最后,我用sed代替了ls输出,在-F附加了'*'的位置添加了yes字段。 因此,我必须使用awk轻松打印该字段。 我生成了相对路径并将其存储到_dir变量中,并使用简单的引号将其包含到awk打印中。

sed 's/\\*$/\\ Yes/' awk {'print "'$_dir/'"$9";"$5";"$2";"$1";"$10'}

仍然不是“最简单的方法”。 但是我到了那里。 我将尝试统计数据,这似乎很有用。

尝试使用递归将模式作为参数传递给函数时出现错误,但这就是一个不同问题的主题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM