两个问题:
-
-F,
因为您的数据不是逗号分隔的,所以位置不对
-
源文件的第一列只是目标文件第一列的子字符串。你需要使用
index
功能。
你可以用这个
awk
;
awk -v OFS='\t' 'FNR==NR{k[$2]=$1;next;} FNR==1{print $0, "Index"}
{for (i in k) if (index($1, i))
{print $0, k[i]; break}}' Source_File Target_File | column -t
Dir_name size Index
/data/user/parent_dir_1/child_1 100066 1
/data/user/parent_dir_1/child_2/sub_child_1 465456 1
/data/user/parent_dir_1/child_2/sub_child_2 54564564 1
/data/user/parent_dir_1/child_2/sub_child_3 464645645 1
/data/user/parent_dir_1/child_3/sub_child_1 45454 1
/data/user/parent_dir_2 1313134 2