Можно ли использовать screen через ssh без -t?

Это должно быть легко с помощью awk .

$ awk -f script.awk file1.txt
snp1 snp1 1
snp1 snp2 0.3
snp1 snp3 0.4
snp1 snp4 0.5
snp2 snp1 0.3
snp2 snp2 1
snp2 snp3 0.4
snp2 snp4 0.5
snp3 snp1 0.4
snp3 snp2 0.4
snp3 snp3 1
snp3 snp4 0.5
snp4 snp1 0.5
snp4 snp2 0.5
snp4 snp3 0.5
snp4 snp4 1

Содержание script.awk . Пропускаем первую строку и форматируем остальные по желанию.

$ cat script.awk
{
if (NR == 1) next;
print $1" snp1 "$2;
print $1" snp2 "$3;
print $1" snp3 "$4;
print $1" snp4 "$5;
}

Содержание file1.txt

$ cat test.txt 
____   snp1  snp2   snp3   snp4
snp1    1     0.3   0.4    0.5  
snp2    0.3     1   0.4    0.5
snp3    0.4   0.4     1    0.5 
snp4    0.5   0.5   0.5      1

Таким образом, вы можете перенаправить вывод в новый файл.

awk -f script.awk file1.txt > file2.txt
3
18.04.2017, 05:29
1 ответ

Если вы хотите использовать экран для отображения чего-либо, вам понадобится терминал.

Если вы хотите только начать новый сеанс, но не отображать его, вызовите screen -m -d. Сессия начнется в отсоединенном виде.

Если вы хотите взаимодействовать только с существующей сессией, используйте опцию -X, чтобы послать команду этой сессии. Это не прикрепляется к сеансу и не требует наличия терминала. Обратите внимание, что если экранная сессия была запущена в отделенном режиме, ее начальное окно не активно, поэтому вам, вероятно, придется выбрать окно с помощью -p, прежде чем что-либо делать, например

screen -d -m long-running-command
screen -p 1 -X stuff 'yes^M' 

Что бы вы ни делали, вы, вероятно, захотите использовать воспроизводимое имя сессии и всегда передавать опцию -S, чтобы знать, с какой сессией вы разговариваете.

2
27.01.2020, 21:25

Теги

Похожие вопросы