#過濾所有目錄
[root@localhost tmp]# ldd /usr/bin/vim linux-vdso.so.1 => (0x00007fffedffd000) libncurses.so.5 => /usr/lib64/libncurses.so.5 (0x00000031b5200000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00000031b3e00000) libacl.so.1 => /lib64/libacl.so.1 (0x00000031b4e00000) libgpm.so.1 => /usr/lib64/libgpm.so.1 (0x00000031b4600000) libperl.so => /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so (0x00000031b5600000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00000031b6200000) libutil.so.1 => /lib64/libutil.so.1 (0x00000031b5a00000) libc.so.6 => /lib64/libc.so.6 (0x00000031b2a00000) libm.so.6 => /lib64/libm.so.6 (0x00000031b3600000) libdl.so.2 => /lib64/libdl.so.2 (0x00000031b2e00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000031b3200000) libsepol.so.1 => /lib64/libsepol.so.1 (0x00000031b4200000) /lib64/ld-linux-x86-64.so.2 (0x00000031b2600000) libattr.so.1 => /lib64/libattr.so.1 (0x00000031b3a00000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00000031b7200000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000031b4a00000) [root@localhost tmp]# ldd /usr/bin/vim | grep -o "/[^[:space:]]\{1,\}" /usr/lib64/libncurses.so.5 /lib64/libselinux.so.1 /lib64/libacl.so.1 /usr/lib64/libgpm.so.1 /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so /lib64/libresolv.so.2 /lib64/libutil.so.1 /lib64/libc.so.6 /lib64/libm.so.6 /lib64/libdl.so.2 /lib64/libpthread.so.0 /lib64/libsepol.so.1 /lib64/ld-linux-x86-64.so.2 /lib64/libattr.so.1 /lib64/libnsl.so.1 /lib64/libcrypt.so.1
[root@localhost tmp]# which ls alias ls='ls --color=tty' /bin/ls [root@localhost tmp]# which ls | grep -o "/[^[:space:]]\{1,\}" /bin/ls
截取文件的父目錄
[root@localhost tmp]# export DPATH=/usr/local/file/name/test.file [root@localhost tmp]# echo ${DPATH%/*} /usr/local/file/name
截取目錄路徑中的文件名
[root@localhost tmp]# echo ${DPATH##*/} test.file
使用sed命令的N、n、P、p
[root@localhost tmp]# seq 5 | sed -n 'N;P' 1 3 #N追加下一行到模式空間,模式空間內容爲1\n2,P顯示模式空間中的第一行內容,以上是打印1到5的基數數 [root@localhost tmp]# seq 5 | sed -n 'n;P' 2 4 #n爲讀取下一行覆蓋模式空間內容 [root@localhost tmp]# seq 5 | sed -n '$!N;P' 1 3 5 [root@localhost tmp]# #1到5爲5行,N每次匹配2行,到第5行的時候不能發現第6行,故不處理第5行內容,$!N是強制使用結尾行。
使用sed查找以abc結尾的行並且以bcd開始的行
[root@localhost tmp]# cat test sdlfjsldfabc bcdksdlfjlksdfl abcdksdlfjlksdfl babcdksdlfjlksdfl [root@localhost tmp]# sed -n 'N;/abc\>\n\<bcd/p' test sdlfjsldfabc bcdksdlfjlksdfl #N讀取兩行到模式空間,\>錨定詞尾 \n換行符 \<錨定詞首 //p 固定模式使用 [root@localhost tmp]# sed -n 'N;/dfl\>\n\<bab/p' test abcdksdlfjlksdfl babcdksdlfjlksdfl
使用sed命令查找替換到自己想要的結果一:
[root@localhost tmp]# cat test 333.xx223x.uuu.com [root@localhost tmp]# sed -r 's/([[:alnum:]]+).([[:lower:]]+)[[:alnum:]]*.*/\2\1/' test xx333
使用sed命令查找替換到自己想要的結果二:
[root@localhost tmp]# cat test 123.abc456defg.uuu.com [root@localhost tmp]# sed -r 's/([[:alnum:]]+).([[:lower:]]+)[[:digit:]]+([[:lower:]]+).*/\2\3\1/' test abcdefg123