Im trying to grep for a filename with fullpath in a file which contains something like 'ls -l' output, but it fails to match it correctly.
Line in the shell script which does the string search
pcline=`grep -w "$file1" $file2` # grep for file1 in file2 contents
if i echo the command, the output of command looks like below
grep -w run /home/rajesh/rootfs.layout
Expected
lrwxrwxrwx 1 root root 3 Aug 28 run
Actual
lrwxrwxrwx 1 root root 7 Aug 28 bin/run-parts
lrwxrwxrwx 1 root root 3 Aug 28 run
-rwxr-xr-x 1 root root 303 Aug 28 tests/aes/run.sh
-rwxr-xr-x 1 root root 445 Aug 28 tests/auto_ui/run.sh
-rwxr-xr-x 1 root root 320 Aug 28 tests/available_memory/run.sh
-rwxr-xr-x 1 root root 308 Aug 28 tests/fonts/run.sh
-rwxr-xr-x 1 root root 309 Aug 28 tests/html_config_page/run.sh
-rwxr-xr-x 1 root root 361 Aug 28 tests/ipc/run.sh
-rwxr-xr-x 1 root root 304 Aug 28 tests/JSON/run.sh
-rwxr-xr-x 1 root root 303 Aug 28 tests/log4cplus_cpp/run.sh
-rwxr-xr-x 1 root root 301 Aug 28 tests/log4cplus_c/run.sh
-rwxr-xr-x 1 root root 751 Aug 28 tests/msm_basic/run.sh
-rwxr-xr-x 1 root root 472 Aug 28 tests/res_man_dependency/run.sh
-rwxr-xr-x 1 root root 465 Aug 28 tests/res_man_ipc/run.sh
-rwxr-xr-x 1 root root 789 Aug 28 tests/res_man_multi_process/run.sh
-rwxr-xr-x 1 root root 469 Aug 28 tests/res_man_private_client/run.sh
-rwxr-xr-x 1 root root 492 Aug 28 tests/res_man_public_client/run.sh
-rwxr-xr-x 1 root root 311 Aug 28 tests/virt_mem_config/run.sh
lrwxrwxrwx 1 root root 6 Aug 28 var/run]
The trick i tried is to add a white space, which is guaranteed in my input file, this works in console, but not when it is assigned to a variable.
grep " tests/aes/run.sh" /home/rajesh/rootfs.layout
Line in the script
pcline=`grep \"" $file1"\" $file2` # grep for file1 in file2 contents
Please let me know if i have committed any errors in this script.
You can use egrep
like this:
egrep "(^| )$file1( |$)" "$file2"
If file1="run"
then above command will match string run
preceded by line start or space and followed by space or line end.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With