Hello Guys,
Today I am going to show you how we can cut or get particular string from a file name which is having special char (underscore) and extension of file name in Linux shell script.
============================================================================
ls -ltrh | grep DBMS_XPLAN_OUTLINE_ > a.log
cat a.log | awk '{print $9}' > /tmp/_a.log
cat /tmp/_a.log | sed 's/DBMS_XPLAN_OUTLINE_//' > /tmp/_a1.log
cat /tmp/_a1.log | sed "s/\.log$//" > /tmp/_a2.log
============================================================================
Please refer output of above command steps by step.
1. [oracle@oracle11g newsql]$ ls -ltrh
total 80K
-rw-rw-r-- 1 oracle oracle 5.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_aykvshm7zsabd.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_53saa2zkr6wc3.log
-rw-rw-r-- 1 oracle oracle 4.4K Mar 23 15:34 DBMS_XPLAN_OUTLINE_08bqjmf8490s2.log
-rw-rw-r-- 1 oracle oracle 3.5K Mar 23 15:34 DBMS_XPLAN_OUTLINE_bsa0wjtftg3uw.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_bfujkg8dw1aax.log
-rw-rw-r-- 1 oracle oracle 3.9K Mar 23 15:34 DBMS_XPLAN_OUTLINE_0k8522rmdzg4k.log
-rw-rw-r-- 1 oracle oracle 5.4K Mar 23 15:34 DBMS_XPLAN_OUTLINE_cm5vu20fhtnq1.log
-rw-rw-r-- 1 oracle oracle 3.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_8hpppyj5kdn3y.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_g3wrkmxkxzhf2.log
-rw-rw-r-- 1 oracle oracle 3.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_459f3z9u4fb3u.log
-rw-rw-r-- 1 oracle oracle 3.9K Mar 23 15:34 DBMS_XPLAN_OUTLINE_3w4qs0tbpmxr6.log
-rw-rw-r-- 1 oracle oracle 4.3K Mar 23 15:34 DBMS_XPLAN_OUTLINE_6aq34nj2zb2n7.log
2. [oracle@oracle11g newsql]$ ls -ltrh | grep DBMS_XPLAN_OUTLINE_ > a.log
==========================================================================
3. [oracle@oracle11g newsql]$ cat a.log
-rw-rw-r-- 1 oracle oracle 5.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_aykvshm7zsabd.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_53saa2zkr6wc3.log
-rw-rw-r-- 1 oracle oracle 4.4K Mar 23 15:34 DBMS_XPLAN_OUTLINE_08bqjmf8490s2.log
-rw-rw-r-- 1 oracle oracle 3.5K Mar 23 15:34 DBMS_XPLAN_OUTLINE_bsa0wjtftg3uw.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_bfujkg8dw1aax.log
-rw-rw-r-- 1 oracle oracle 3.9K Mar 23 15:34 DBMS_XPLAN_OUTLINE_0k8522rmdzg4k.log
-rw-rw-r-- 1 oracle oracle 5.4K Mar 23 15:34 DBMS_XPLAN_OUTLINE_cm5vu20fhtnq1.log
-rw-rw-r-- 1 oracle oracle 3.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_8hpppyj5kdn3y.log
-rw-rw-r-- 1 oracle oracle 3.8K Mar 23 15:34 DBMS_XPLAN_OUTLINE_g3wrkmxkxzhf2.log
-rw-rw-r-- 1 oracle oracle 3.6K Mar 23 15:34 DBMS_XPLAN_OUTLINE_459f3z9u4fb3u.log
-rw-rw-r-- 1 oracle oracle 3.9K Mar 23 15:34 DBMS_XPLAN_OUTLINE_3w4qs0tbpmxr6.log
-rw-rw-r-- 1 oracle oracle 4.3K Mar 23 15:34 DBMS_XPLAN_OUTLINE_6aq34nj2zb2n7.log
-rw-rw-r-- 1 oracle oracle 4.1K Mar 23 15:34 DBMS_XPLAN_OUTLINE_0b84axbzj7g59.log
==========================================================================
4. [oracle@oracle11g newsql]$ cat a.log | awk '{print $9}' > /tmp/_a.log
==========================================================================
5. [oracle@oracle11g newsql]$ cat /tmp/_a.log
DBMS_XPLAN_OUTLINE_aykvshm7zsabd.log
DBMS_XPLAN_OUTLINE_53saa2zkr6wc3.log
DBMS_XPLAN_OUTLINE_08bqjmf8490s2.log
DBMS_XPLAN_OUTLINE_bsa0wjtftg3uw.log
DBMS_XPLAN_OUTLINE_bfujkg8dw1aax.log
DBMS_XPLAN_OUTLINE_0k8522rmdzg4k.log
DBMS_XPLAN_OUTLINE_cm5vu20fhtnq1.log
DBMS_XPLAN_OUTLINE_8hpppyj5kdn3y.log
DBMS_XPLAN_OUTLINE_g3wrkmxkxzhf2.log
DBMS_XPLAN_OUTLINE_459f3z9u4fb3u.log
DBMS_XPLAN_OUTLINE_3w4qs0tbpmxr6.log
DBMS_XPLAN_OUTLINE_6aq34nj2zb2n7.log
DBMS_XPLAN_OUTLINE_0b84axbzj7g59.log
==========================================================================
6. [oracle@oracle11g newsql]$ cat /tmp/_a.log | sed 's/DBMS_XPLAN_OUTLINE_//' > /tmp/_a1.log
==========================================================================
[oracle@oracle11g newsql]$ cat /tmp/_a1.log
aykvshm7zsabd.log
53saa2zkr6wc3.log
08bqjmf8490s2.log
bsa0wjtftg3uw.log
bfujkg8dw1aax.log
0k8522rmdzg4k.log
cm5vu20fhtnq1.log
8hpppyj5kdn3y.log
g3wrkmxkxzhf2.log
459f3z9u4fb3u.log
3w4qs0tbpmxr6.log
6aq34nj2zb2n7.log
0b84axbzj7g59.log
==========================================================================
7. [oracle@oracle11g newsql]$ cat /tmp/_a1.log | sed "s/\.log$//" > /tmp/_a2.log
==========================================================================
8. [oracle@oracle11g newsql]$ cat /tmp/_a2.log
aykvshm7zsabd
53saa2zkr6wc3
08bqjmf8490s2
bsa0wjtftg3uw
bfujkg8dw1aax
0k8522rmdzg4k
cm5vu20fhtnq1
8hpppyj5kdn3y
g3wrkmxkxzhf2
459f3z9u4fb3u
3w4qs0tbpmxr6
6aq34nj2zb2n7
0b84axbzj7g59