首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令,用于具有不同扩展的多输入和多输出。

问命令,用于具有不同扩展的多输入和多输出。
EN

Unix & Linux用户
提问于 2022-11-17 04:14:50
回答 1查看 48关注 0票数 0

我在Linux机器上使用grep、sed和cut命令执行一些操作:

代码语言:javascript
复制
zgrep -A1 "^module" *.v.gz | sed -n -e 's/^\(module \)*\(.*(.*)\).*$/\2/p' | cut -f1 -d"("

这是在文件扩展名为.v.gz的文件上运行的,我希望输出文件具有.txt扩展名。

例如,输入文件名:

代码语言:javascript
复制
abcd.v.gz
efgh.v.gz
ijkl.v.gz
mnop.v.gz

输出文件名

代码语言:javascript
复制
abcd.txt
efgh.txt
ijkl.txt
mnop.txt

因此,我希望保留相同的文件名前缀,但更改扩展名。对于任意数量的文件,我如何做到这一点?

我不是在找shell原语

EN

回答 1

Unix & Linux用户

发布于 2022-11-17 04:47:39

使用for循环处理每个文件

代码语言:javascript
复制
for f in *.v.gz
do
    zgrep -A1 "^module" "$f" | 
    sed -n -e 's/^\(module \)*\(.*(.*)\).*$/\2/p' |
    cut -f1 -d"(" > "${f%.v.gz}.txt"
done

我对sed程序有点怀疑,我猜你想要

代码语言:javascript
复制
sed -n -e 's/^module *\([^(]*\).*$/\1/p'

然后你就根本不需要割伤了。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/725229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档