GNU/Linux >> Znalost Linux >  >> Linux

Jak obrátit seznam slov v řetězci shellu?

pokud potřebujete čistý shell, žádné externí nástroje, zvažte toto:

reverse_word_order() {
    local result=
    for word in [email protected]; do
        result="$word $result"
    done
    echo "$result" 
}

reverse_word_order "$str"

Jinak tac vám může okamžitě pomoci:

echo -n "$str" | tac -s' '

nebo

tac -s' ' <<<"$str" | xargs 

Ano, můžete vyzkoušet tyto příkazy,

Pro řetězec ,

echo "aaaa eeee bbbb ffff cccc"|tr ' ' '\n'|tac|tr '\n' ' '

Pro proměnnou ,

echo $str|tr ' ' '\n'|tac|tr '\n' ' '

Můžete použít awk takto:

echo "$str" | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }'

Linux
  1. Jak odebrat přístupový bod z uloženého seznamu?

  2. Jak změnit Shell v Linuxu

  3. Jak převést hex na ASCII znaky v prostředí Linuxu?

  1. Jak vypsat konkrétní typ souborů v rekurzivních adresářích v shellu?

  2. Jak mohu v prostředí Linux zpracovat každý řádek víceřádkového řetězce?

  3. Linuxové shell utils:převod seznamu šestnáctkových čísel na seznam desetinných čísel

  1. Jak nastavit reverzní proxy Nginx

  2. Jak vytisknout Stdout příkazu v opačném pořadí na Linux Shell

  3. Jak způsobit chybu „Příliš dlouhý seznam argumentů“?