Come collegarmi a due linee utilizzando awk o sed?Unione di due linee consecutive utilizzando awk o sed
for e.g.:
Ho dati che assomiglia a questo:
abcd
joinabcd
efgh
joinefgh
ijkl
joinijkl
ho bisogno di un'uscita come quella qui sotto:
joinabcdabcd
joinefghefgh
joinijklijkl
Qualcuno dovrebbe preoccuparsi di spiegare come funziona questa espressione awk? Principalmente la parte! (NR% 2). – mjuarez
NR rappresenta il numero di righe ... % è l'operatore modulu (cioè un% b è il resto quando a è diviso per b) ... (NR% 2) è il modulu di NR di due, cioè è true quando NR è pari o falso quando dispari ... ! (NR% 2) è vero quando NR è dispari, quindi ... ! (NR% 2) {print $ 0p} significa che il programma stamperà la linea concatenata con la variabile p, solo su linee dispari ... {p = $ 0} significa che su ogni riga, p è impostato come linea corrente (ma solo dopo aver stampato la riga corrente e quella precedente se la linea corrente è dispari). – shiri
Con un numero dispari di linee di input, questo metodo non stamperà la linea finale. –