Это делается путем делегирования событий. Событие будет привязываться к элементу-оболочке, но будет делегировано элементу селекторного класса. Вот как это работает.
$('.wrapper-class').on("click", '.selector-class', function() {
// Your code here
});
Элемент-оболочка-оболочка может быть любым ex. документа, тела или вашей обертки. Упаковщик должен уже существовать.
Просто сделайте это в двухэтапном расширении параметра bash ТОЛЬКО , поскольку bash
не поддерживает вложенное расширение параметра в отличие от zsh
или других оболочек.
"${string%_*}"
to разделите все после последнего появления «_» и "${tempString#*_}"
, чтобы отделить все от начала до первого появления «_»
string="ENCSR000ALA_endothelial_cell_of_umbilical_vein_CTCF"
tempString="${string%_*}"
printf "%s\n" "${tempString#*_}"
endothelial_cell_of_umbilical_vein
. Другой пример:
string="ENCSR000AMA_HepG2_CTCF"
tempString="${string%_*}"
printf "%s\n" "${tempString#*_}"
HepG2
Вы можете изменить эту логику для применения к каждому из имен файлов в вашей папке.
Может использовать regex.
extract_words() {
[[ "$1" =~ ^([^_]+)_(.*)_([^_]+)$ ]] && echo "${BASH_REMATCH[2]}"
}
while read -r from_line
do
extracted=$(extract_words "$from_line")
echo "$from_line" "[$extracted]"
done < list_of_filenames.txt
EDIT: я переместил «извлечение» в одну функцию bash для повторного использования и простой модификации для более сложных случаев, таких как:
extract_words() {
perl -lnE 'say $2 if /^([^_]+)_(.*)_([^_]+)$/' <<< "$1"
}
extract_words
вызвать команду [[
; BASH_REMATCH
установлен глобально, поэтому вы можете написать extract_words "$from_line" && extracted=${BASH_REMATCH[2]}
.
– chepner
21 February 2017 в 14:37
extract_words's
, например, некоторыми awk
или perl
(для более сложных сценариев), то потребуется замена команды. Как я уже писал, он предназначен для легкой модификации. (и потому что замена на самом деле вызывает функцию bash, она не болит): D
– jm666
21 February 2017 в 15:34
extract_words
. Я не думаю, что приспосабливать будущие изменения к коду стоит накладных расходов на развилку, где это необязательно.
– chepner
21 February 2017 в 15:43