Xargs separati da Newline

È ansible fare xargs utilizzare solo newline come separatore? (in bash su Linux e OS X se ciò conta)

So che -0 può essere utilizzato, ma è PITA poiché non tutti i comandi supportno l'output NUL-delimitato.

  • GPO con SAMBA come DC
  • C'è un modo per eliminare / troncare un file mentre un process sta scrivendo?
  • Apache ascolta, ma non risponde
  • Come evitare gli errori di GRUB dopo aver eseguito l'aggiornamento apt-get - ubunut
  • Come condividere il traffico multicast a molti ville
  • Come consentire gli accessi SSH anche quando il controllo forzato dei file system non riesce
  • 5 Solutions collect form web for “Xargs separati da Newline”

    Qualcosa lungo le linee di

     alias myxargs='perl -p -e "s/\n/\0/;" | xargs -0' cat nonzerofile | myxargs command 

    dovrebbe funzionare.

    GNU xargs (impostazione predefinita su Linux, installazione di findutils da findutils su OS X per ottenerla) support -d che consente di specificare un delimitatore personalizzato per l'input, in modo da poter

     ls *foo | xargs -d '\n' -P4 foo 

    Con Bash, generalmente preferisco evitare xargs per qualsiasi cosa less ingannevole, a favore di loops di lettura. Per la tua domanda, while read -ar LINE; do ...; done while read -ar LINE; do ...; done while read -ar LINE; do ...; done il lavoro (ricorda di utilizzare la syntax dell'arrays con LINE, ad esempio ${LINE[@]} per tutta la linea). Questo non richiede alcun trucco: per impostazione predefinita, usa solo \n come carattere di terminazione di linea.

    Dovrei postare una domanda su SO circa i pro e contro di xargs vs lo-read loops … fatto!

    Non con la versione standard. Ho una versione hacker che lo fa – l'ho usato prima che io sapessi di ' find ... -print0 | xargs -0 ... find ... -print0 | xargs -0 ... '. Contattathemes se vuoi una copia – vedi il mio profilo. (Nessuna scienza sul razzo – ma solo il lavoro, ma non è una replica completa xargs.)

    Cosa c'è di cat file | xargs | sed 's/ /\n/ig' cat file | xargs | sed 's/ /\n/ig' cat file | xargs | sed 's/ /\n/ig' questo converrà gli spazi a newline, utilizzando gli strumenti standard di bash di Linux.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.