linux - 使用输入和多个管道循环 Linux 命令

标签 linux loops input pipe tr

此命令有效,但我希望它在每个子目录中的每个文档 (input.txt) 上运行它。

tr -d '\n' < input.txt | awk '{gsub(/\. /,".\n");print}' | grep “\[" >> SingleOutput.txt

代码获取文件输入并将其分成带有新行的句子。然后它找到所有包含“[”的句子并将句子输出到单个文件。 我尝试了几种使用 find 和 for 循环的循环技术,但无法让它在本示例中运行。我试过了

for dir in ./*; do 
(cd "$dir" && tr -d '\n' < $dir | awk '{gsub(/\. /,".\n");print}' | grep “\[" >> /home/dan/SingleOutput.txt); 
done;

还有

find ./ -execdir tr -d '\n' < . | awk '{gsub(/\. /,".\n");print}' | grep "\[" >> /home/dan/SingleOutput.txt;

但是他们并没有执行,只是给了我>分。有什么想法吗?

最佳答案

试试这个:

cd $dir
find ./ | grep "input.txt$" | while read file; do tr -d '\n' < $file | awk '{gsub(/\. /,".\n");print}' | grep “\[" >> SingleOutput.txt; done

这将找到 $dir 下所有名为 input.txt 的文件,它将执行您所说的已经在工作的操作,将输出发送到 $dir/SingleOutput.txt。

关于linux - 使用输入和多个管道循环 Linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23691343/

相关文章:

java - 用循环创建多个不同名称的文件?

函数中的 JQuery 变量有奇怪的行为

java - 为什么循环在被动 informatica java 转换中不起作用?

python - 文本文件中的分隔符 [0001],在 python 中使用 np.loadtxt 读取

linux - 可以在不同的 CPU 内核上执行相同网络数据包的硬和软 IRQ 吗?

linux - 创建可引导的 .img 文件

linux - 将音频从浏览器流式传输到 nodejs

python - 为什么 windows 会给出 sqlite3.OperationalError 而 linux 不会?

C:来自用户的未知输入

c - 仅打印长度超过 10 个字符的输入行 (ANSI C)