Не могли бы вы попробовать один раз?Протестировано только с предоставленными образцами.
awk '
{
sub(/[[:space:]]+$/,"")
}
FNR==NR{
a[FNR]=$0
next
}
{
for(i=1;i<=NF;i++){
count=a[i]==$i?++count:count
}
if(count==length(a)){
print "Line number " FNR " whose contents are:" $0 " present in both the files."
}
count=""
}' Input_file2 Input_file1
Вывод будет следующим:
Line number 1 whose contents are:India USA China Russia France England present in both the files.
В случае, если ваши строки могут содержать заглавные или строчные буквы, смешайте их значения, добавляя решение, которое могло быпозаботьтесь об этой проблеме.
awk '
{
sub(/[[:space:]]+$/,"")
}
FNR==NR{
a[FNR]=tolower($0)
next
}
{
for(i=1;i<=NF;i++){
count=a[i]==tolower($i)?++count:count
}
if(count==length(a)){
print "Line number " FNR " whose contents are:" $0 " present in both the files."
}
count=""
}' Input_file2 Input_file1
Или как описано в коде чата с условием else.
awk '
{
sub(/[[:space:]]+$/,"")
}
FNR==NR{
a[FNR]=tolower($0)
next
}
{
for(i=1;i<=NF;i++){
count=a[i]==tolower($i)?++count:count
}
if(count==length(a)){
print "Line number " FNR " whose contents are:" $0 " present in both the files."
}
else{
print "Line number " FNR " is NOT matching..."
}
count=""
}' Input_file2 Input_file1