文本文件中的bash循环交换占位符

文本文件中的bash循环交换占位符,bash,loops,variables,text,placeholder,Bash,Loops,Variables,Text,Placeholder,我是bash新手,我试图找到问题的答案: 我有5列的文本文件。第一列是“名称”(类似于:6xr8),其余列是数字。此文本文件由3行组成,其中第1列中的“名称”不变,仅以下列中的数字不变 然后是第二个文本文件,其中有5个占位符$1、$2、$3、$4、$5。此文本文件用于运行程序\u a。我可以用/path\u to\u program/program\u A text\u file\u B执行程序 read -r col1 col2 col3 col4 col5 < text_file_A

我是bash新手,我试图找到问题的答案:

我有5列的文本文件。第一列是“名称”(类似于:6xr8),其余列是数字。此文本文件由3行组成,其中第1列中的“名称”不变,仅以下列中的数字不变

然后是第二个文本文件,其中有5个占位符$1、$2、$3、$4、$5。此文本文件用于运行
程序\u a
。我可以用
/path\u to\u program/program\u A text\u file\u B
执行程序

read -r col1 col2 col3 col4 col5 < text_file_A
sed -e 's/\$1/'"$col1/" -e 's/\$2/'"$col2/" -e 's/\$3/'"$col3/" -e 's/\$4/'"$col4/" -e 's/\$5/'"$col5/" text_file_B > text_file_C
现在我想要一个bash脚本,它读取
文本文件a
的第一行,替换
文本文件B
中的占位符,并生成一个输出文件,可以由
程序a
执行

我可以从
文本文件\u C
读取变量,并使用while循环执行程序\u C:

#/垃圾箱/垃圾箱
file=“text\u file\u C.txt”
而IFS=读取行
做
#回音“$line”
./程序\u C.sh$行

完成将
text\u file\u A
中的一行读取到一组变量中。然后使用带有
sed
的占位符替换
文本文件中的占位符

read -r col1 col2 col3 col4 col5 < text_file_A
sed -e 's/\$1/'"$col1/" -e 's/\$2/'"$col2/" -e 's/\$3/'"$col3/" -e 's/\$4/'"$col4/" -e 's/\$5/'"$col5/" text_file_B > text_file_C

我不明白你想干什么。你能给出文件的例子和结果吗?你只想读
text\u file\u A
的第一行,而不是所有的行?非常感谢!帮助了我很多。while循环中有一个小错误,您指定了col2。
read -r col1 col2 col3 col4 col5 < text_file_A
sed -e 's/\$1/'"$col1/" -e 's/\$2/'"$col2/" -e 's/\$3/'"$col3/" -e 's/\$4/'"$col4/" -e 's/\$5/'"$col5/" text_file_B > text_file_C