如何用shell脚本切掉所有子文件夹中文本文件中每一行的尾部



我有这个项目,

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

相关内容

  • 没有找到相关文章

最新更新