有unload.dat
个文件,其中包含.ksh
个文件名列表。任务是从unload.dat
文件中存在的每个文件中提取一些参数详细信息。每个文件都包含以下信息。
让我们考虑file_name1.ksh
中的第一个文件名(unload.dat
):
graph_name = abcd.ksh
export name_a=value_a
export "name_b=value_b"
export name_c=value_c
export name_d=value_d
export name_e="value_e"
export name_f="value_f"
下一个文件的提取数据应该附加到同一输出文件中的前一个文件的输出中。
输出应如下所示:
abcd.ksh name_a value_a 1 filename_1.ksh
abcd.ksh name_b value_b 1 filename_1.ksh
abcd.ksh name_c value_c 1 filename_1.ksh
abcd.ksh name_d value_d 1 filename_1.ksh
abcd.ksh name_e value_e 1 filename_1.ksh
abcd.ksh name_a value_a 2 filename_2.ksh
abcd.ksh name_b value_b 2 filename_2.ksh
abcd.ksh name_c value_c 2 filename_2.ksh
abcd.ksh name_d value_d 2 filename_2.ksh
abcd.ksh name_e value_e 2 filename_2.ksh
答案 0 :(得分:0)
#!/bin/sh
counter=1
while read -r filename; do
if [ "$counter" -ne 1 ]; then
echo
echo
fi
IFS== read _ graph < "$filename"
graph=${graph# }
sed -n '/^export/{s/^[^ ]* //;s/"//g;p}' < "$filename" \
| while IFS== read -r name value; do
echo "$graph $name $value $counter $filename"
done
counter=$((counter+1))
done < unload.dat
答案 1 :(得分:-1)
#!/bin/bash
var1=`cat unisc.txt | sed -n '1,1p' | cut -f3 -d' '`
var2=`cat unisc.txt | wc -l`
va1=1
var=`expr $var2 - 1`
echo $var
for ((i=1;i<=2;i++))
do
for ((j=1;j<=$var;j++))
do
var3=`sed 's/"//g' unisc.txt | cut -f2 -d' ' | cut -f1 -d'=' | sed -n '2,'$var2'p' | sed -n $j'p'`
var4=`sed 's/"//g' unisc.txt | cut -f2 -d' ' | cut -f2 -d'=' | sed -n '2,'$var2'p' | sed -n $j'p'`
echo "$var1 $var3 $var4 $i filename_1.ksh"
done
done