Итак, вы действительно хотите отменить каждое слово, а не каждое предложение, правильно? Или ваша запятая должна быть периодом?
perl -pe 's/(\w+)/ reverse $1 /eg' << END
DCBA. HGFE.GI
MLK,PON.RQ
UTS. ZYXWV. 321
END
ABCD. EFGH.IG
KLM,NOP.QR
STU. VWXYZ. 123
Если вы хотите перенаправить, сделайте следующее:
perl -pe 's/(\w+)($|\W+)/ reverse($1) . $2 /eg' < file_in > file_out
В моем примере сделайте [!d3 ]
perl -pe 's/(\w+)($|\W+)/ reverse($1) . $2 /eg' << END > file_out
НЕ помещайте перенаправление в ту же строку, что и завершающее слово heredoc. Если вы это сделаете, оболочка не сможет найти конец heredoc.
С перенаправлением в и из файлов никогда не делайте этого: command < file > file с тем же файлом. Перераспределение происходит до запуска команды, а > обрезает файл до нулевой длины. Когда команда запускается, входной файл уже был уничтожен.
Один из способов сделать это - создать файл списка с помощью команд установки. Следующая команда создаст файл, содержащий команды, сообщающие apt-get, какую версию устанавливаемого приложения:
dpkg -l | tail -n +6 | awk '{print $2"="$3}' | while read pkg; do echo "sudo apt-get install $pkg" >> install_pkg; done
Я поставил вышеприведенную команду, чтобы пропустить первые 6 строк из dpkg -l, поскольку они информационные линии, которые превращаются в мусорные линии. Я также не добавлял команду -y в команду apt-get, чтобы она не автоматически устанавливала приложение, которое вы не хотели устанавливать. Я могу оставить это до вас. Когда я проверил, будет ли это работать или нет, я добавил в -s для имитации установки после команды apt-get в команде и, похоже, сработал.
Команда создаст файл с строками, которые выглядят так, что они содержат имя и версию пакета для установки (я усекался для длинного списка):
sudo apt-get install y-ppa-manager=2017.06.13-1~webupd8~0
sudo apt-get install yad=0.39.0-1~webupd8~xenial0
sudo apt-get install yelp=3.20.1-1ubuntu1~xenial1
sudo apt-get install yelp-xsl=3.20.1-1~ubuntu16.04.1~xenial1
sudo apt-get install youtube-screenlet=0.3.2+++~trusty1
sudo apt-get install zeitgeist=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-core=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-datahub=0.9.16-0ubuntu4
sudo apt-get install zenity=3.20.0-1~ubuntu16.04.1
sudo apt-get install zenity-common=3.20.0-1~ubuntu16.04.1
sudo apt-get install zip=3.0-11
sudo apt-get install zlib1g:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g:i386=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g-dev:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zsync=0.6.2-1ubuntu1
Тогда все, что вы должно быть сделано, чтобы скопировать файл install_pkg, который был создан в другую систему, учитывая, что все PPA на другой системе соответствуют системе, в которой вы находитесь, и выполните следующую команду для запуска установки:
sh ./install_pkg
Надеюсь, это поможет!
Один из способов сделать это - создать файл списка с помощью команд установки. Следующая команда создаст файл, содержащий команды, сообщающие apt-get, какую версию устанавливаемого приложения:
dpkg -l | tail -n +6 | awk '{print $2"="$3}' | while read pkg; do echo "sudo apt-get install $pkg" >> install_pkg; done
Я поставил вышеприведенную команду, чтобы пропустить первые 6 строк из dpkg -l, поскольку они информационные линии, которые превращаются в мусорные линии. Я также не добавлял команду -y в команду apt-get, чтобы она не автоматически устанавливала приложение, которое вы не хотели устанавливать. Я могу оставить это до вас. Когда я проверил, будет ли это работать или нет, я добавил в -s для имитации установки после команды apt-get в команде и, похоже, сработал.
Команда создаст файл с строками, которые выглядят так, что они содержат имя и версию пакета для установки (я усекался для длинного списка):
sudo apt-get install y-ppa-manager=2017.06.13-1~webupd8~0
sudo apt-get install yad=0.39.0-1~webupd8~xenial0
sudo apt-get install yelp=3.20.1-1ubuntu1~xenial1
sudo apt-get install yelp-xsl=3.20.1-1~ubuntu16.04.1~xenial1
sudo apt-get install youtube-screenlet=0.3.2+++~trusty1
sudo apt-get install zeitgeist=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-core=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-datahub=0.9.16-0ubuntu4
sudo apt-get install zenity=3.20.0-1~ubuntu16.04.1
sudo apt-get install zenity-common=3.20.0-1~ubuntu16.04.1
sudo apt-get install zip=3.0-11
sudo apt-get install zlib1g:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g:i386=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g-dev:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zsync=0.6.2-1ubuntu1
Тогда все, что вы должно быть сделано, чтобы скопировать файл install_pkg, который был создан в другую систему, учитывая, что все PPA на другой системе соответствуют системе, в которой вы находитесь, и выполните следующую команду для запуска установки:
sh ./install_pkg
Надеюсь, это поможет!
Один из способов сделать это - создать файл списка с помощью команд установки. Следующая команда создаст файл, содержащий команды, сообщающие apt-get, какую версию устанавливаемого приложения:
dpkg -l | tail -n +6 | awk '{print $2"="$3}' | while read pkg; do echo "sudo apt-get install $pkg" >> install_pkg; done
Я поставил вышеприведенную команду, чтобы пропустить первые 6 строк из dpkg -l, поскольку они информационные линии, которые превращаются в мусорные линии. Я также не добавлял команду -y в команду apt-get, чтобы она не автоматически устанавливала приложение, которое вы не хотели устанавливать. Я могу оставить это до вас. Когда я проверил, будет ли это работать или нет, я добавил в -s для имитации установки после команды apt-get в команде и, похоже, сработал.
Команда создаст файл с строками, которые выглядят так, что они содержат имя и версию пакета для установки (я усекался для длинного списка):
sudo apt-get install y-ppa-manager=2017.06.13-1~webupd8~0
sudo apt-get install yad=0.39.0-1~webupd8~xenial0
sudo apt-get install yelp=3.20.1-1ubuntu1~xenial1
sudo apt-get install yelp-xsl=3.20.1-1~ubuntu16.04.1~xenial1
sudo apt-get install youtube-screenlet=0.3.2+++~trusty1
sudo apt-get install zeitgeist=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-core=0.9.16-0ubuntu4
sudo apt-get install zeitgeist-datahub=0.9.16-0ubuntu4
sudo apt-get install zenity=3.20.0-1~ubuntu16.04.1
sudo apt-get install zenity-common=3.20.0-1~ubuntu16.04.1
sudo apt-get install zip=3.0-11
sudo apt-get install zlib1g:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g:i386=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zlib1g-dev:amd64=1:1.2.8.dfsg-2ubuntu4.1
sudo apt-get install zsync=0.6.2-1ubuntu1
Тогда все, что вы должно быть сделано, чтобы скопировать файл install_pkg, который был создан в другую систему, учитывая, что все PPA на другой системе соответствуют системе, в которой вы находитесь, и выполните следующую команду для запуска установки:
sh ./install_pkg
Надеюсь, это поможет!