我正在尝试编写一个命令来捕获 linux OS (kali) 中的每个许可证并将其与正确的包相关联。基本思想是递归地搜索 /usr/share/doc 以查找“版权”文件,然后搜索该文件并搜索主要许可证“^License”。每个包裹可以有多个。
我正在尝试创建一个 csv,它采用所有包名称并将它们放在每行的第一个字段中,然后在每个许可证逗号分隔的情况下跟随它。
我的基本流程:列出每个包(完成)。制作一个列表,其中每行是找到的许可证的 csv。然后只需粘贴文件 1 和文件 2,boom。
问题,我必须用逗号交换命令输出中的换行符,但是我需要在每次 xargs 迭代的末尾重新插入换行符,以便我的 csv 许可证将与包列表对齐。我已经尝试了几十种方法。当我进行命令替换时,它会中断翻译或回显(不再读\n
作换行符。我试过了\\n
,没有运气)。
这就是我所拥有的,只需要一种在每个 xargs 循环中放置换行符的方法。
find . -name copyright |xargs -l cat |grep "^License" |tr '\n' ','
因此,如果我可以\n
在每个 xarg 循环之后插入一些东西,我就完成了。我知道我可以用变量为此编写一个 for 循环。
如果您对 awk 没问题,请尝试以下解决方案: