文本文件中的bash循环交换占位符
我是bash新手,我试图找到问题的答案: 我有5列的文本文件。第一列是“名称”(类似于:6xr8),其余列是数字。此文本文件由3行组成,其中第1列中的“名称”不变,仅以下列中的数字不变 然后是第二个文本文件,其中有5个占位符$1、$2、$3、$4、$5。此文本文件用于运行文本文件中的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
程序\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