使用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...发布于 2012-12-26 10:29:38
这个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//发布于 2012-12-26 07:55:48
来自这里的教程是非常好的。样本:echo "nixcraft" | rev.对于SED部分,这里是这个链接。

https://askubuntu.com/questions/232846
复制相似问题