распознавать символическую ссылку из папки с символической ссылкой

Решение:

perl -lane 'print "$F[0] $_" for /'\''phNAME'\'': '\''([^'\'']+)/g' input.txt

Вывод:(на основе вашего опубликованного входного файла)

ENSG00000268674 Dynamic changes
ENSG00000268674 Strong inhibition of secretion
ENSG00000215268 Dynamic changes
ENSG00000130538 Intracellular retention of SH4(YES)-mCherry

Пояснение:

Подробное объяснение будет предоставлено по запросу.
По моему опыту, perlчасто является наиболее подходящим инструментом для такого рода задач.
Код выглядит довольно беспорядочно из-за '\'', который является просто экранированным '.

Рекомендация:

Если можете, избегайте возиться с данными jsonи анализируйте их с помощью jq, как уже было разумно предложено.

0
17.08.2020, 01:16
2 ответа

На основе @ajgringo619

Это решает:

# includes complete left path
alias ll2='if [[ $(diff <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") <(ls -d "$(pwd -P)/"*) | wc -l) == "0" ]]; then ls -l; else paste -d " -> " <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") /dev/null /dev/null /dev/null <(ls -d "$(pwd -P)/"*); fi'

# or 

alias ls2='if [[ $(diff <(ls "$PWD" | sed "s|.*|$(ls -d "$PWD/")&|g") <(ls -d "$(pwd -P)/"*) | wc -l) == "0" ]]; then ls -l; else paste -d " -> " <(ls "$PWD") /dev/null /dev/null /dev/null <(ls -d "$(pwd -P)/"*); fi'
1
18.03.2021, 23:12

Я добавил $(pwd -P)в командную строку bash; это дает реальное имя папки вместо символической ссылки. Насколько я знаю, нет командного переключателя с ls, который даст вам то, что вы хотите. Но, по крайней мере, изменение подсказки даст вам точное местоположение, в котором вы сейчас находитесь.

1
18.03.2021, 23:12

Теги

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