Вы можете сделать это с помощью find
, используя -printf
. Из человек находит
:
%h Leading directories of file's name (all but the last ele-
ment). If the file name contains no slashes (since it is
in the current directory) the %h specifier expands to
".".
Следовательно:
awk '/SOURCE/ {print $3}' /MAC/Delete_Name.txt |
while IFS= read -r file; do find /OS/ -iname "$file.pdf" -printf "%h\n" ; done
sed 's/\(.*\):.*/\1/' filename
должно помочь. Сопоставьте все до двоеточия и верните это в замене.
Во-первых, бесполезное использование cat
. Во-вторых, grep
только поиск; это ничего не меняет. Вы хотите sed
здесь:
$ sed -E 's/:[0-9]+.*/ /' input
xyz 10.93.10.13
xyz 10.93.10.13
xyz 10.18.104.181
xyz 10.93.10.13
wxy 10.93.10.13
wxy 10.93.10.13
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]
ADMIN loopback[127.0.0.1]