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.

  • Debian SSH - Il terminal di ridimensionamento non registra con bash
  • come accedere al process perduto?
  • Come posso vedere quale sia la versione più recente di un pacchetto disponibile in un repo specifico se ho già installato o aggiornato il pacchetto da un altro repo?
  • Linux vpnc - Come definire un numero tunX specifico in vpnc
  • Qual è il numero massimo di port?
  • Distribuire la memory del process di linux nel file
  • 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.