Bash 创建一个以制表符分隔的文件,其中包含来自文件的信息和文件名的一部分
我有许多文件包含:Bash 创建一个以制表符分隔的文件,其中包含来自文件的信息和文件名的一部分,bash,awk,sed,command-line,tab-delimited,Bash,Awk,Sed,Command Line,Tab Delimited,我有许多文件包含: >c_000000000288 abcdefg >c_000000000270 abcdefg >c_000000000062 abcdefg *Note: continues for hundreds of lines 文件名类似于: M07.compare.M010.info500.info2.1.txt M07.compare.M010.info500.info2.2.txt M07.compare.M010.info500.info2.3.t
>c_000000000288
abcdefg
>c_000000000270
abcdefg
>c_000000000062
abcdefg
*Note: continues for hundreds of lines
文件名类似于:
M07.compare.M010.info500.info2.1.txt
M07.compare.M010.info500.info2.2.txt
M07.compare.M010.info500.info2.3.txt
M07.compare.M010.info500.info2.word.txt
注意:我希望代码适用于不同的数字范围(例如1-10或1-3),同时包含“word”
我希望结果是一个以制表符分隔的文件,其中包含以下内容:
c_000000000288 1
c_000000000270 1
c_000000000062 1
c_000000000258 2
c_000000000191 3
c_000000000188 3
c_000000003713 3
c_000000000179 3
c_000000000162 word
c_000000000097 word
我曾尝试搜索过许多论坛,但没有找到解决方案。到目前为止,我只能将“name”提取到一个以制表符分隔的文件中,但我还没有弄清楚如何有效地添加文件名信息
谢谢你的帮助 您只需要:
shopt -s extglob
awk -v OFS='\t' '
FNR==1 { n=split(FILENAME,f,/\./); ext=f[n-1] }
sub(/^>/,""){ print $0, ext }
' M07.compare.M010.info500.info2.{{1..10},word}.txt
很抱歉我添加了更多的信息。你能发布到目前为止你写的代码吗?