通过awk命令剥离的管道参数

时间:2018-12-13 17:17:14

标签: bash shell awk

我正在编写bash命令以准备CSV文件,其中包含android设备中的可用软件包以及这些软件包的大小。

这是我准备的脚本:

{"1", "10", "11", ..., "2", "20"}

它按预期将前几个软件包的结果附加到文件中。但是,它将删除软件包的最后一部分,因此TreeMap<String, Indicador> sortedMap = new TreeMap<>(new Comparator<String>() { public int compare(String string1, String string2) { return Double.parseDouble(string1) - Double.parseDouble(string2) < 0.0 ? -1 : 1; } }); 命令将在无效目录下失败。 但是,如果我只是使用

adb shell pm list packages -f |
awk -F: '{print $2}' |
awk -F= '{print $2 "," $1;
  cmd="adb shell du -h \"" $1 "\" | cut -f1";
  cmd|getline $3;
  close(cmd);
  print $2","$3","$1 >> "apk_size.csv"}'

它会正确打印所有包装。

我刚刚开始为此目的使用awk。有人可以指出为什么会发生这种情况吗?是否有一些我过度调配的缓冲区大小配置。

这是我刚打印时出现故障的软件包:

  

com.android.defcontainer,/ system / priv-app / DefaultContainerService / DefaultContainerService.apk

一旦我开始使用cmd来获取apk大小,就将adb shell du -h arg选为

  

/ system / priv-app / DefaultContainerS

0 个答案:

没有答案