извлечение строк из файла, которые соответствуют второму файлу, и объединение их в один файл

О проблеме ГДЕ для размещения остальной части условия, Подсказка - всегда соблюдать отступы, это, безусловно, упростит задачу :)

Я не тестировал (могу ошибаться), но для начала я бы попробовал что-то вроде этого:

changes="$(cat /home/$USER/.updates.log | grep http)"
if [ "$changes" != 0 ]; then
  zenity --question --text "Changes found in:\n<i>$changes</i>\n\nWould you like to update now?"
  if [ $? = 0 ]; then
    ## password
    sudo_password="$(gksudo --print-pass --description 'MyScript' -- : 2>/dev/null)"
    ## check for null entry or cancellation
    if [[ ${?} != 0 || -z ${sudo_password} ]]; then
      exit 4
    fi
    if ! sudo -kSp '' [ 1 ] <<<"${sudo_password}" 2>/dev/null; then
      exit 4
    fi
    ## notify
    notify-send "Applying updates..." -i gtk-dialog-info -t 1000 -u normal &
    ## proceed to update
    cuser="${SUDO_USER:-$USER}"
    sudo -Sp ''  sudo /usr/local/bin/MyScript <<<"${sudo_password}"
    ## option to view log
    new_update="$(cat /home/$USER/.updates.log | grep 'MyScript completed at ' | awk -F ' at ' '{print $2}')"
    zenity --question --text "MyScript updated at <b><i>$new_update</i></b>\n  \nWould you like to view the log file now?"
    if [ $? = 0 ]; then
      ## display log
      zenity --text-info --filename=/home/$USER/.updates.log --width 680 --height 680
    fi
  fi
## Here is where you can choose what to do if there are no results
else
  zenity --text-info "No updates found; exiting..." 
fi
0
04.05.2018, 21:54
1 ответ

Это более или менее тот же тип ответов, что и некоторые, которые вы уже получили на подобные вопросы. :Сначала прочитайте один файл (позиции ), затем проанализируйте другие файлы и извлеките данные.

awk 'NR == FNR { pos[$1]=1; next } $2 in pos { f="desired_pos" $2; print >>f; close(f) }' positions NA*.bam_dp

Если в вопросе указаны два отдельных файла и если positionsвключает 142535975, то будет создан desired_pos142535975со следующим содержимым:

1   142535975   79 NA20507
1   142535975   135 NA20901

Это будет работать, если предположить, что все позиции относятся к хромосоме 1 (или, по крайней мере, к той же той же хромосоме, что и в отдельных файлах ), поскольку нет информации об имени хромосомы, кроме местоположения в файле positions.

1
28.01.2020, 02:43

Теги

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