Awk 将参数列表作为从另一个选项卡分隔的文件中提取的文件名

Awk 将参数列表作为从另一个选项卡分隔的文件中提取的文件名,awk,Awk,我有一个制表符分隔的文件,如下所示。第一列表示不带扩展名.txt的文件名列表,我想将其作为参数列表传递给另一个awk命令 File1 abcd xyz 234 pqr File2 abcd xyz 234 pqr File3 abcd xyz 234 pqr File4 abcd xyz 234 pqr e、 g.假设这是我的awk命令,我希望将参数作为 awk -F"\t" '---Commamd-----' File1.txt File2.txt F

我有一个制表符分隔的文件,如下所示。第一列表示不带扩展名
.txt
的文件名列表,我想将其作为参数列表传递给另一个
awk
命令

File1   abcd    xyz 234 pqr
File2   abcd    xyz 234 pqr
File3   abcd    xyz 234 pqr
File4   abcd    xyz 234 pqr
e、 g.假设这是我的
awk
命令,我希望将参数作为

awk -F"\t" '---Commamd-----' File1.txt File2.txt File3.txt File4.txt >> Final.txt
因此,它将第一列中的每一行以及
“.txt”
扩展名作为输入,并创建
Final.txt
输出文件。应注意,每次列的数量可能会有所不同


我曾想过在bash脚本中创建它,但我无法提供正确的参数并将第一列的下一行作为下一个参数追加

此处不完全确定,因为不清楚。根据您希望从1
awk
获取文件名并将其传递给另一个
awk
的声明,可以尝试以下操作

awk '{print $0}' <(awk 'NF{print $1".txt"}' Input_file)

awk'{print$0}'根据我对您的需求的理解,您希望使用制表符分隔的文件来获取第1列上的文件名,并希望向其添加
.txt
扩展名,然后将其传递给另一个文件。首先使用
mapfile
从选项卡分隔的文件中获取名称

mapfile -t fileNames < <(awk -v FS="\t" '{print $1}' tabfile)
你可以试试这个awk

awk '{file=$1".txt";while (getline<file == 1)print $2}' infile
awk'{file=$1.txt”;while(getline)
awk '{file=$1".txt";while (getline<file == 1)print $2}' infile