scp
Если вы хотите передать папку, просто zip
ее сначала, мы можем unzip
ее позже.
Со своего компьютера запустите:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Здесь root
— ваша учетная запись, а 10.145.198.100
— IP-адрес удаленного сервера. Мы собираемся скопировать the_file
в папку ~/
на пульте.
$ unzip the_zip_file.zip -d destination_folder
Используйте cut
, чтобы получить только то, что после 8-го символа:
$ sed -n "2p" test | cut -c 8-
foobar
С СЭД:
sed -n '2s/.\{7\}//p' file
С awk:
awk 'NR==2{print substr($0,8)}' file
Выполнено двумя методами awk и python
awk 'NR==2{sub(/^.{7}/,"",$0);print $0}' filename
python
#!/usr/bin/python
import re
m=re.compile(r'.{7}')
k=open('filename','r')
j=[]
for i in k:
j.append(i.strip())
print re.sub(m,"",j[1])
выход
foobar
группа
$ grep -zoP '\A(?:.*\n){1}.{7}\K.*' file | tr -d '\0'
$ grep -m2 ^ file | tail -n 1 | cut -c8-
$ grep -Pom2 '.{7}\K.*' file | tail -n 1
Питон
$ python3 -c 'print(open("file").read().splitlines()[1][7:])'
перл
$ perl -lne 'print(unpack("x7A*")), last if 2..2' file
сед
$ sed -e '
/\n/{s/.$//;q;}
2G;//s/./\n/7;D
' file
встроенные функции bash
N=1
while IFS= read -r l; do
case $N in
2)
printf '%s\n' "${l:7}"
break;;
esac
(( N++ ))
done < file
Работа:
grep поглощает файл, пропускает первую строку, пропускает 7 символов до второй строки и помещает оставшиеся символы этой строки в пакет вывода.
grep выводит 2 совпадения, которые представляют собой целые строки, затем захватывает конец и обрезает первые 7 символов с помощью средства if cut.
python поглощает файл, разбивает его на строки, выбирает 2-й и печатает 8-й символ и далее.
perl распаковывает 2-ю строку и игнорирует начальные 7 символов и печатает каждый последующий символ.
Встроенные функции bash говорят сами за себя.