Обновление данных с помощью поиска и замены

в командной строке rsync

  • *.fileобозначает исходный файл (, например. ваш локальный диск)
  • user@path_to_hpc(...):/scratch/your_username/folder...обозначает пункт назначения.
  • userимя пользователя
  • path_to_hpc(...)IP-адрес или имя хоста
  • /scratch/your_username/folder...пути назначения (напр. /скретч/fi1d18)

локальные файлы

лучший способ продолжить

cd /where/r/myfile
  • где /where/r/myfile— локальный путь к вашему диску.

, затем

rsync..options.. *.bam user@remote:/scratch/fi1d18
1
04.07.2020, 22:19
1 ответ

Иди на авк:

awk 'NR==FNR{a[$1]=$NF;next}{split($1,arr,/\./);$NF=a[arr[1]]}1' get_data.txt resultant.txt > tmpfile
mv tmpfile resultant.txt

Выход:

ald900.google.com #N/A US
ald978.vci.google.com #N/A JAPAN
ald9024.google.com #N/A SRI-LANKA

Что делает awk?

awk '
    NR==FNR{
        a[$1]=$NF           #Array `a` stores last fields of get_data.txt using the 1st fields as keys
        next
    } 
    {
        split($1,arr,/\./)  #Split 1st field of resultant.txt on the dots
        $NF=a[arr[1]]       #Retrieve the corresponding element in a and replace the last field with it
    }
    1                       #Print the resulting line
' get_data.txt resultant.txt

Примечание. :Если вы хотите, чтобы выходной файл был разделен табуляцией, добавьте -v OFS='\t'к awk(awk -v OFS='\t' '...' get_data.txt resultant.txt > tmpfile).

3
18.03.2021, 23:22

Теги

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