Используйте awk
:
awk 'FNR==NR{a[NR-1]=$0}
FNR!=NR{for(i in a){split(a[i],x," ");
if(x[1]==$1){$0=$0" "x[2];delete a[i];break}}print;}' file2 file1
Обратите внимание на порядок аргументов: file2
- это до файл1
.
FNR == NR
: применяется только к первому файлу (в списке аргументов): file2
.
a [NR-1 ] = $ 0
: заполняет массив a
строками file2
. FNR! = NR
: применяется к file1
.
for (i in a)
: цикл по ранее созданному массиву a
split (a [i], x, "")
: разделить значение (строка file2
) в пространстве и сохранить его в новом массиве с именем х
. if (x [1] == $ 1)
: если первый элемент x
( x [1]
) равен первому полю ( $ 1
) из file1
(если первое поле найдено в массиве), то: $ 0 = $ 0 "" x [2]
устанавливает строку для печати с новое значение в конце x [2]
. удалить [i]; break
, поскольку вы хотите, чтобы в следующий раз этот индекс снова появился в file1
(например, DJF
), нам нужно удалить этот элемент массива a
и выпадает из цикла for ( break
). print
: не имеет значения, найден элемент в массиве или нет, строка (из file1
) должна быть напечатана в любом случае. Вывод:
CAAX-MC oracle.log.ApplicationScript 1 7 CRM CRMDomain
CAAZ-TEST-MC oracle.log.ApplicationScript 1 7 CRM CRMDomain
DAA oracle.log.ApplicationScript 1 7 CRM
DJF oracle.log.ApplicationScript 1 6 CRM CRMDomain
DJF oracle.apps.appslogger 5 6 CRM CommonDomain,CRMDomain,FinancialDomain
A veces, Linux monta discos duros de una manera divertida. Solo como referencia :Tengo un sistema operativo basado en Debian que monta aleatoriamente /dev/sda/ como /dev/sdb/ y viceversa. No he experimentado ninguno de esos problemas y mi archivo fstab incluye el parámetro ro(de solo lectura ).
Creo que la siguiente parte en fstab monta el sistema de archivos en modo ro si y solo si se han encontrado errores al intentar arrancar en modo normal :"/dev/mapper/sda3 _crypt/ext4 errores=remontar -ro 0 1" (Tengo particiones cifradas con LUKS, así que en lugar de /dev/sda tengo /dev/mapper/sda3 _crypt)
Eso se implementó para evitar posibles daños al sistema de archivos si se detectaban errores al intentar montarlo en modo normal.
Editar :No debe alterar su fstab de esa manera que elimina la protección.
¿Tiene una unidad de disco duro mecánica? En caso afirmativo, intente ejecutar fsck para verificar y reparar su sistema de archivos:fsck -fy /dev/sd (X )(Y)donde X, Y son su disco duro y arranque la partición con la que tiene problemas.
Para encontrar su unidad (s ), haga fdisk -l | más para enumerar todas sus unidades de disco duro y particiones una pantalla a la vez.
Espero que esto te funcione bien.