Для небольшого текстового файла cat > somefile
и используйте функцию вставки терминала, чтобы вставить файл. Нажмите ^D
в конце.
Для двоичных файлов вы, вероятно, захотите сначала закодировать их в base64, а затем декодировать на удаленном компьютере с помощью base64 -d somefile.encoded > somefile
. Предположим, у вас есть base64
. Вам придется каким-то образом выполнить кодирование на стороне Windows.
Для больших файлов вставка в терминал может не работать, поэтому вам понадобится что-то, предназначенное для чтения файлов. Похоже, что в Putty нет функции для сброса файла в соединение, которая может быть у какой-то другой терминальной программы. Хотя инструмент командной строки plink
, который поставляется вместе с Putty, имеет параметр -m
для чтения «команд» из файла. Кажется, здесь работает. С этим foo.txt
:
cat > foo.out <<EOF
adsf
EOF
Выполнение plink -m foo.txt itvirta@somehost
создало файл. (По SSH, но не должно быть причин, по которым последовательное соединение будет другим.) С base64
вы можете пропустить кошку:
base64 -d <<EOF > outputfile (base64 encoded data...) EOF
Я думаю, вы хотите разделить ввод на части, в которых есть одно слово, двоеточие, а затем еще несколько слов. Было бы проще, если бы разделы были разделены, но вы могли бы, например, добавьте разделители примерно так:
echo "ownername:read write execute groupname:read execute all:none sticky" | \
sed -e 's/\w\w*:/;&/g'
;ownername:read write execute ;groupname:read execute ;all:none sticky
Разделение по точкам с запятой должно быть возможным отсюда.
Обязательный фрагмент Perl, разделяющий части непосредственно на массив:
echo "ownername:read write execute groupname:read execute all:none sticky" | \
perl -ne '@a = split/ (?=\w+:)/; print "$_\n" for @a'
ownername:read write execute
groupname:read execute
all:none sticky