Поменять местами каждое слово строки с помощью sed
Description
-----------
The job to do is reversing every word of a line.
that a word is a sequence of lowercase alphabets
Raw Input
---------
112358 is a fibonacci sequence...
a test line
124816 1392781
final line...
Desired Output
--------------
112358 si a iccanobif ecneuqes...
a tset enil
124816 1392781
lanif enil...
. Этот скрипт Sed сделает работу:
#!/usr/bin/sed
# Put a \n in front of the line and goto begin.
s/^/\n/
bbegin
# Marker for the loop.
:begin
# If after \n is a lower case sequence, copy its last char before \n and loop.
s/\n\([a-z]*\)\([a-z]\)/\2\n\1/
tbegin
# If after \n is not a lower case sequence, copy it before \n and loop.
s/\n\([^a-z]*[^a-z]\)/\1\n/
tbegin
# Here, no more chars after \n, simply remove it before printing the new line.
s/\n//
Учебное пособие из здесь очень хорошо. Образец: echo "nixcraft" | rev
. И для части SED, вот из этой ссылки .