linux - 如何使用linux命令反转文本文件中的每个单词而不改变单词的顺序

标签 linux

有很多问题表明如何反转句子中的每个单词,例如,我可以轻松地在 Python 或 Javascript 中做到这一点,但如何使用 Linux 命令做到这一点?看起来 tac 可能是一个选项,但这似乎可能会反转行和单词,而不仅仅是单词?还有哪些其他工具可以做到这一点?我真的不知道。我知道 revtacawk 看起来都是竞争者......

所以我想从:

cat dog sleep
pillow green blue

至:

tac god peels
wollip neerg eulb

**轻微跟进

来自this reference看起来我可以使用 awk 将每个字段分解为单个字符数组,然后编写一个 for 循环以这种方式手动反转每个单词。这是相当尴尬的。当然有更好/更简洁的方法来做到这一点吗?

最佳答案

试穿一下尺码:

sed -e 's/\s+/ /g' -e 's/ /\n/g' < file.txt | rev | tr '\n' ' ' ; echo

它折叠了所有空格并将标点符号计为“单词”的一部分,但看起来它(至少大部分)有效。 sh 万岁!

关于linux - 如何使用linux命令反转文本文件中的每个单词而不改变单词的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549214/

相关文章:

Linux:在挂载 'external' 分区时模拟/屏蔽用户所有权?

regex - 仅匹配单个数字 sed

linux - 如何安装单个 Perl Crypt::OpenSSL::AES 供不同的 linux 环境使用

linux - 如果两台机器上的文件都丢失了,如何退出 shell 脚本?

c - io_submit writes() 是否保证按顺序执行?

json - 在 Bash 中有效地将 JSON 文件重写为 CSV

linux - 使用linux命令查找并删除多个文件

regex - bash 正则表达式 : replace string with any number of characters

linux - 为什么非 super 用户可以删除root创建的文件?

linux - 在 Lucidworks 服务器上添加 Linux 数据源