GNU/Linux >> Znalost Linux >  >> Linux

xargs oddělené novým řádkem

Řešení 1:

GNU xargs (výchozí v systému Linux; nainstalujte findutils z MacPorts na OS X jej získat) podporuje -d což vám umožní zadat vlastní oddělovač pro vstup, takže můžete udělat

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

Řešení 2:

Něco ve smyslu

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

by mělo fungovat.

Řešení 3:

S Bash se obecně raději vyhýbám xargům pro cokoli, co je nejméně složité, ve prospěch smyček při čtení. Pro vaši otázku while read -ar LINE; do ...; done dělá tuto úlohu (nezapomeňte použít syntaxi pole s LINE, např. ${LINE[@]} pro celou řadu). To nevyžaduje žádné triky:ve výchozím nastavení používá čtení pouze \n jako znak ukončení řádku.

Měl bych poslat otázku na SO o výhodách a nevýhodách xargs vs. smyčky při čtení... hotovo!

Řešení 4:

$ echo "1\n2 3\n4 5 6" | xargs -L1 echo  "#"
# 1
# 2 3
# 4 5 6

Linux
  1. Praktický pohled na příkaz xargs

  2. Předávání více parametrů přes Xargs?

  3. Příklady příkazů xargs v Linuxu

  1. xargs:příkaz nenalezen

  2. Je možné skrýt ztráty+nálezy?

  3. Jak naplánuji restart na Linuxu?

  1. Omezit velikost adresáře

  2. Soubory mizí na linuxovém serveru

  3. Jak zálohovat soubory crontab -e?