I have two file as given below which shows the ACL permissions of each file. I need to compare the source file with target file and list down the difference as specified below in required output. Can someone help me on this ?
Source File
*************
# file: /local/test_1
# owner: own
# group: grp
user::rwx
group::r-x
other::r-x
# file: /local/test_1/2019
# owner: own
# group: grp
user::rwx
group::r-x
other::r-x
# file: /local/test_1/2019/10
# owner: own_01
# group: grp_02
user::rwx
group::r-x
other::r-x
# file: /local/test_1/2019/10.dum.txt
# owner: own_01
# group: grp_02
user::rwx
group::r-x
other::r-x
Target File :
*************
# file: /local/test_1
# owner: own
# group: grp
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x
default:group:sgg:rwx
default:group:sgg_1:r-x
# file: /local/test_1/2019
# owner: own
# group: grp
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:sgg_1:r-x
# file: /local/test_1/2019/10
# owner: own_01
# group: grp_02
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x
default:group:sgg_0:rwx
default:group:sgg_3:r-x
# file: /local/test_1/2019/10.dum.txt
# owner: own_01
# group: grp_02
user::rwx
group::r-x
other::r-x
Required Output:
*********************
/local/test_1 default:user::rwx,default:group::r-x ,default:other::r-x,default:group:sgg:rwx,default:group:sgg_1:r-x
/local/test_1/2019 default:user::rwx,default:group::r-x ,default:group:sgg_1:r-x
/local/test_1/2019/10 default:user::rwx, default:group::r-x,default:other::r-x,default:group:sgg_0:rwx,default:group:sgg_3:r-x
RudiC
November 12, 2019, 10:34am
2
How far would
$ diff -y -b --suppress-common-lines file1 <(sed 's/^# file.*/&\n\n&\n/' file2)
>
> # file: /local/test_1
>
> default:user::rwx
> default:group::r-x
> default:other::r-x
> default:group:sgg:rwx
> default:group:sgg_1:r-x
>
> # file: /local/test_1/2019
>
> default:user::rwx
> default:group::r-x
> default:group:sgg_1:r-x
>
>
> # file: /local/test_1/2019/10
>
> default:user::rwx
> default:group::r-x
> default:other::r-x
> default:group:sgg_0:rwx
> default:group:sgg_3:r-x
>
> # file: /local/test_1/2019/10.dum.txt
>
get you?
@Rudic : Im not sure what is the command you are using ?? Can you explain it ?
RudiC
November 12, 2019, 10:41am
4
man diff
:
NAME
GNU diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
DESCRIPTION
Compare FILES line by line.
If your OS / shell don't offer "process substitution", try also:
sed 's/^# file.*/&\n\n&\n/' file2 | diff -y -b --suppress-common-lines - file1
Only Diff command here will not give the required output .. im trying to bring the filename and non-matching patterns in single line as shown below
Required Output:
*********************
/local/test_1 default:user::rwx,default:group::r-x ,default:other::r-x,default:group:sgg:rwx,default:group:sgg_1:r-x
/local/test_1/2019 default:user::rwx,default:group::r-x ,default:group:sgg_1:r-x
/local/test_1/2019/10 default:user::rwx, default:group::r-x,default:other::r-x,default:group:sgg_0:rwx,default:group:sgg_3:r-x
--- Post updated at 05:08 PM ---
sed 's/^# file.*/&\n\n&\n/' file2 | diff -y -b --suppress-common-lines - file1
While using the above command , the result is partially matching but having <, > & whitespaces , could you please help me to get the desired output.