Bash 使用带有awk的通配符保存新文件名
我有22个文件,它们的编号从1到22。比如: bla.chr1.bla.norm bla.chr2.bla.norm 等等 我制作了一个简单的awk脚本,在第一列中添加文件名的特定编号:Bash 使用带有awk的通配符保存新文件名,bash,awk,wildcard,Bash,Awk,Wildcard,我有22个文件,它们的编号从1到22。比如: bla.chr1.bla.norm bla.chr2.bla.norm 等等 我制作了一个简单的awk脚本,在第一列中添加文件名的特定编号: for i in {1..22} do awk '{print "'"$i "'" $0}' *.chr${i}.*.norm > *.chr${i}.*.norm.chr done 但是现在我想用我以前使用的通配符保存所有文件。有可能吗?试试这个,呆呆的 awk '{match(FILENA
for i in {1..22}
do
awk '{print "'"$i "'" $0}' *.chr${i}.*.norm > *.chr${i}.*.norm.chr
done
但是现在我想用我以前使用的通配符保存所有文件。有可能吗?试试这个,呆呆的
awk '{match(FILENAME,"chr([0-9]+).",t); print t[1] $0 > FILENAME".chr"}' *.norm
是否要连接这些文件?然后使用
cat
,但是在保存文件时也可以cat
扩展通配符吗?通配符在bash中的任何地方都有效,它们可以与任何命令一起使用。它不起作用。在使用awk
命令之后,我在{1..22}中使用了:for I;做cat*.chr${i}.*.norm.chr>>*.ALLCHR.*.norm.chr;完成
,但最终得到一个名为:*.ALLCHR.*.norm.chr的文件
通配符匹配现有文件;它们不“记住”行上的前一个通配符匹配的内容,并且使用相同的值。