我有一种情况,我必须找到表的列名。 我有一个大文件,大约有5万条记录 喜欢:
PLACES_OF_INDIA_2 :3432123, :Names Expr=('"Table_Name1".Column_1 || '' '' || "Table_Name2".Column_1 || '' '' || "Table_Name3"."Column_2"'), :Name=BCUDB2."Table_Name1".ATTR_VALUE, :Condition=BCUDB2."Table_Name1".Column_1, :Tables=(ABCXYZ."Table_Name1", ABCXYZ."Table_Name2", ABCXYZ."Table_Name3"), :Keys=ABCXYZ."IT_DIM_ANHBUSCH_37560".(M_113478_PQR(Int), M_113443_PQR(Int), M_113484_PQR(Int), M_113470_PQR(Int), M_113468_PQR(Int)), :Attrs=(Name :456866 = ('"Table_Name1".Column_1 || '' '' || "Table_Name2".Column_1 || '' '' || "Table_Name3"."Column_2"', ABCXYZ."Table_Name1", ABCXYZ."Table_Name2", ABCXYZ."Table_Name3"), PLACES_OF_ORIGIN_WineHierarchy_2 :490064736 = ABCXYZ."Table_Name1".ATTR_VALUE)
因此,我想提取文件中用于表的行号的列。我在单独的文件中有表格列表 Table_Name1 Table_Name2 Table_Name3
,我希望输出像 1,栏_1 1,栏_2 1,第3列
请您检查一下
答案 0 :(得分:0)
您的文件看起来有点复杂,我看不到列名将存在的任何特定模式。
所以,我为入门者提供了一个小型解决方案,如下所示:
for i in `cat table.txt`
do
num=`echo $i| tr "Table_Name" "\n" |sed '/^$/d'`
echo -n $num >>ans.txt
echo -n ",">>ans.txt
col=`echo $a| awk -vRS=")" -vFS="(" '{print $2}'|tr "||" "\n"|grep $i|cut -d'.' -f2 |grep -v ","`
echo $col >>ans.txt
done
输出就像
cat ans.txt
1,Column_1
2,Column_1
3,"Column_2"'
您可以进一步处理,因为这不是确切的输出。但是您有一些起点。
让我知道这是否有帮助。