find
+bash
раствор:
find /log -type f -name "*.1" -exec bash -c 'gzip -nc "$1" > "${1:0:-2}.gz"; rm "$1"' _ {} \;
gzip
опции:
-n
-при сжатии не сохранять оригинальное имя файла и отметку времени по умолчанию -c
-запись вывода на стандартный вывод; оставить исходные файлы без изменений ${1:0:-2}
-bash
's нарезка ; получить путь к файлу с усеченными последними 2 символами
С sed
, предполагая, что целью является замена каждого пробела символом подчеркивания (_
), для всех пробелов в строках
sed 's/ /_/g' file
Тесты
$ cat file
ACTTTTTTTTGSGSGSGSG TTT
RTATATTATRSSTSTSTST HHH
$ sed 's/ /_/g' file
ACTTTTTTTTGSGSGSGSG__TTT
RTATATTATRSSTSTSTST__HHH
Добавление к ответу @Paulo Tomé, предполагая, что может быть больше , чем два пробела:
tr -s '[[:blank:]]' < file | sed 's/[[:blank:]]/__/'
Предполагая, что это всегда два пробела:
tr '[[:blank:]]' '_' < file
Это работает, даже если пробелы являются вкладками: