Ho una variabile Bash multilinea: $WORDS
contenente una parola su ogni riga.
Ho un'altra variabile Bash multilinea: $LIST
contenente anche una parola su ogni riga.
Voglio eliminare $LIST
da qualsiasi parola presente in $WORDS
.
Attualmente lo faccio con un while read
e grep
ma questo non è sexy.
WORDS=$(echo -e 'cat\ntree\nearth\nred')
LIST=$(echo -e 'abcd\n1234\nred\nwater\npage\ncat')
while read -r LINE; do
LIST=$(echo "$LIST" | grep -v "$LINE")
done <<< "$WORDS"
echo "$LIST"
Penso di poterlo fare con awk
ma non sono riuscito a farlo funzionare.
Qualcuno può spiegarmi come farlo con Awk?
echo "$LIST" | grep -vf <(echo "$WORDS" | sed -re 's/(.*)/^\1$/')