我有这个项目,
Parent
|-ChildA
|-ChildB
|- ....
|-ChildZ
每个子目录都包含requirements.txt
,它有这样的python包信息,
packageA==0.1
packageB==5.9.3
...
packageZ==2.9.18.23
我想切断所有版本信息,这样输出文件将是,
packageA
packageB
...
packageZ
我在努力,
cat requirements.txt | grep "==" | cut -d "=" -f 1
但它不会迭代所有子目录,也不会保存。我该怎么做?谢谢
*我正在使用ubuntu20.4
为了在所有requirements.txt
文件上执行命令,您需要遍历所有子目录。您可以使用以下简单脚本:
#!/bin/sh
for child in ./Child* ; do
cat "$child/requirements.txt" | grep "==" | cut -d "=" -f 1
done
现在,如果你想";保存";对于每个文件的新版本,您只需使用>
运算符将每个命令输出重定向到该文件即可。使用这个操作符会覆盖你的文件,所以我建议你将输出重定向到一个新文件。
以下是具有重定向输出的脚本:
#!/bin/sh
for child in ./Child* ; do
cat "$child/requirements.txt" | grep "==" | cut -d "=" -f 1 > $child/cut-requirements.txt
done