Bash字符串处理(与Java对照) - 29. 字符串翻转

Bash字符串处理(与Java对照) - 29.字符串翻转(字符串反转、字符串反序)

In Java

StringBuilder.reverse || StringBuffer.reverse

 

StringBuffer sb = new  StringBuffer(str);

String str2 = sb.reverse().toString();

 

In Bash

编写一个Bash函数来实现字符串翻转

格式:strrev "$STR"

 

strrev(){
    local src=$1
    local len=${#src}
    local i
    local dst
    for ((i=len-1; i>=0; --i)) {
        dst="$dst${src:i:1}"
    }
    echo "$dst"
}

 

[root@jfht ~]# STR=12345

[root@jfht ~]# strrev "$STR"
54321
[root@jfht ~]#

尝试一个多行文本。

[root@jfht ~]# STR="12345
> hello"
[root@jfht ~]# strrev "$STR"
olleh
54321
[root@jfht ~]#

 

使用外部命令rev来实现字符串翻转

格式:echo "$STR" | rev

格式:rev <<< "$STR"

注意:rev命令是把每行文本进行翻转。

 

man rev 写道
NAME
     rev - reverse lines of a file

SYNOPSIS
     rev [file]

DESCRIPTION
     The rev utility copies the specified files to the standard output, reversing the order of characters in every
     line.  If no files are specified, the standard input is read.
 

[root@jfht ~]# echo "12345" | rev
54321

[root@jfht ~]# rev <<<"12345"
54321

[root@jfht ~]# STR=12345
[root@jfht ~]# echo "$STR" | rev
54321
[root@jfht ~]# rev <<< "$STR"
54321
[root@jfht ~]#

尝试一个多行文本。

[root@jfht ~]# STR="12345
> hello"
[root@jfht ~]# strrev "$STR"
olleh
54321
[root@jfht ~]# echo "$STR" | rev
54321
olleh
[root@jfht ~]# rev <<<"$STR"
54321
olleh
[root@jfht ~]#

 

使用rev和tac命令实现字符串翻转

格式:echo "$STR" | tac | rev

格式:echo "$STR" | rev | tac

 

man tac 写道
NAME
       tac - concatenate and print files in reverse

SYNOPSIS
       tac [OPTION]... [FILE]...

DESCRIPTION
       Write each FILE to standard output, last line first.  With no FILE, or when FILE is -, read standard input.
 

[root@jfht ~]# STR="12345
> hello"
[root@jfht ~]# echo "$STR" | tac | rev
olleh
54321
[root@jfht ~]# echo "$STR" | rev | tac
olleh
54321
[root@jfht ~]#

 

使用awk命令实现字符串翻转

格式:echo "$STR" | awk -F "" '{for(i=NF;i>0;i--)print $i}'

格式:awk -F "" '{for(i=NF;i>0;i--)print $i}' <<<"$STR"

 

 

使用sed命令实现字符串翻转

# 将行中的字符逆序排列,第一个字成为最后一字,……(模拟“rev”)

来自:http://bbs.chinaunix.net/viewthread.php?tid=859821&extra=&page=1

格式:echo "$STR" | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'

格式:sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' <<<"$STR"

 

[root@jfht ~]# echo "12345" | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
54321
[root@jfht ~]# STR=12345
[root@jfht ~]# echo "$STR" | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
54321
[root@jfht ~]# STR="12345
> hello"
[root@jfht ~]# echo "$STR" | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
54321
olleh
[root@jfht ~]# sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' <<<"$STR"
54321
olleh
[root@jfht ~]#

 

 

本文链接:http://codingstandards.iteye.com/blog/1164916   (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 

上节内容:Bash字符串处理(与Java对照) - 28.去除前后空白

下节内容:Bash字符串处理(与Java对照) - 30.综合实例:自动生成版本号源文件

 

sqoop blob mysql_Sqoop处理Clob与Blob字段 [Author]: kwuSqoop处理Clob与Blob字段,在Oracle中Clob为大文本,Blob存储二进制文件。遇到这类字段导入hive或者hdfs需要特殊处理。1、oracle中的测试表[mw_shl_code=bash,true]CREATE TABLET_LOB(A INTEGER,B CLOB,C BLOB)[/mw_shl_code]测试数据[mw_shl_code=sql,t... 阅读详情

相关推荐

Shell中实现字符串反转方法分享

主要介绍了Shell中实现字符串反转方法分享,本文同时提供了多种语言的实现方法,如awk、python、bash、C语言等,需要的朋友可以参考下

Shell中字符串反转的几种技巧

【方法一】利用rev命令 备注: 1) rev命令可以对字符串进行反转 2) rev命令还可以对一个或多个文件进行反转 【方法二】利用sed命令s参数来替换 备注: 1) (.)-->正则表达式中分组匹配,匹配到之后在用具体位置参数\3\2\1来实现反转 2) 同时使用-r参数,表示扩展正则表达式,那样的话,就无需使用反斜杠来转译了 【方法三

杰瑞的专栏 9556

labview汽车电子通用测试程序架构,CAN通讯上位机

结合做过的汽车电子测试项目,车身控制器测试,CAN网络模块测试,电机控制器功能测试,汽车仪表盘视觉及功能测试、电气盒功能测试、EOL下线检测、车用空调控制器功能测试等项目,结合实际项目,整理编写的一个汽车电子,通用测试架构,包含项目的讲解等。6、数据保存 、数据处理、 曲线显示 、报警处理等。7、CAN总线故障信息监控及记录保存。2、参数设置(CAN端口及参数)5、CAN通讯+数据解析。

ali2805486883的博客 2753

Shell中字符串反转的六大方法

【方法一】利用rev命令 命令实现: 备注: (1)rev命令可以对字符串进行反转 (2)rev命令还可以对一个或多个文件进行反转 对一个文件实现: 对多个文件实现: 脚本实现: 【方法二】利用sed命令s参数来替换 命令实现: (1)对字符串长度比较小的转换 备注: (1)(.)-->正则表达式中分组,匹配到之后再用具体的位置参数\...

weixin_42566251的博客 2091

OLLAMA_HOST环境变量设置全攻略:从127.0.0.1到局域网共享的完整配置

本文详细解析了OLLAMA_HOST环境变量的核心作用与配置方法,指导用户如何将Ollama服务从仅限本机访问(127.0.0.1)扩展到局域网共享。文章涵盖了macOS、Linux、Windows三大平台的实战配置步骤,并提供了安全加固、性能优化及常见故障排查方案,是解决多设备协作访问本地AI模型的完整指南。

weixin_28455801的博客 1896

Frenet坐标系下动态街道场景的最优轨迹生成

本文详细解读了Lattice Planner

BigDavid123的博客 2390

linux centos7 bash中字符串反向输出

给定一个字符串,如何反向(倒序)输出?字符串反转的方法:a.对各个字符位置进行循环调换(从原字符串左边取出放在新字符串的右边;从原字符串右边取出放在新字符串的左边)。b.对各个字符由水平排列转为垂直排列(行变列),tac反转,再由垂直排列转为水平排列(列变行)。行变列方法有:grep、sed、awk、xargs等。列变行主要有sed、awk、tr等。xargs只能把空格分隔的行转为列。可以通过sed、awk等方法为字符串各字符间添加空格。训练项目很简单,解决方法也很多,我们共同讨论。

qq_36142959的博客 1943

单片机课程设计——交通灯

单片机课程设计——交通灯一、课程设计主要内容1.1 题目1.2摘要1.3关键词二、设计要求三、设计方案四、参考电路设计4.1.1数码管的设计4.1.2对应程序4.2.1独立按键的设计4.2.2对应程序4.2.3 使用逻辑4.3.1LED模块的设置4.3.2 LED实物图4.3.3 LED显示程序五、调试要点5.1 单片机最小系统5.2 数码管模块5.3 LED模块5.4 独立按键六、总结七、成品图完整程序 一、课程设计主要内容 1.1 题目 交通灯设计 1.2摘要 近年来,随着我国国民经济的快速发展,我国机

PKPROTEUS的博客 3万+

bash将字符串转换为大/小写, 反转字符串大小写

一、运行截图 (1)、转换为小写 (2)、转换为大写 (3)、反转字符串大小写 警告:需要bash4+以上的版本 二、转换为小写 (1)、示例函数: lower() { printf '%s\n' "${1,,}" } (2)、示例用法: $ lower "HELLO" hello $ lower "HeLlO" hello $ lower "hello" hello 三、转换为大写 (1)、示例函数: upper() { printf..

张音乐的博客 900

使用Bigemap下载地图流程

Bigemap地图下载简单流程,临时安排任务简单学习没有深入了解。

TKY666的博客 4846

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1489

Bash字符串处理(与Java对照) - 28.去除前后空白

Bash字符串处理(与Java对照) - 28.去除前后空白 In Java String     trim()           返回字符串的副本,忽略前导空白和尾部空白。   In Bash 使用echo命令去除串中的空白 echo $STR 注意 $STR 不要带引号。因为 $STR 展开后,会作为 echo 的参数。那么 echo 在处理参数的时候,自然会...

巨人站在肩膀上 304

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

Bash字符串处理(与Java对照) - 18.格式化字符串

Bash字符串处理(与Java对照) - 18.格式化字符串 In Java class Formatter 参见:http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax   String.format static String     format(String format,...

巨人站在肩膀上 446

PyCharm 怎么不升级直接使用Jupyter Notebook

在PyCharm 中需要升级到 PyCharm Professional 版本,才能直接使用 Jupyter Notebook。从截图来看,Jupyter Notebook 已经成功启动,并且正在运行。这将在默认网络浏览器中打开一个新的标签页,显示文件浏览器界面。可以在这里创建和编辑。文件添加到 PyCharm 项目中,并使用纯文本编辑功能进行修改。支持与外部工具集成,可以配置它以调用命令行工具或脚本来启动。,参数可以根据需要设置,工作目录设置为项目根目录。,你仍然可以在本地环境中安装和运行。

Davina_yu的博客 994

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java程序员的Bash实用指南系列之字符串处理(目录)

Java程序员的Bash实用指南系列之字符串处理(目录)    在一般的计算机编程语言中,字符串处理是很重要的一块,Bash也是如此,如果掌握了字符串的处理,基本上就能够应付大部分的编程工作了。在Unix/Linux操作系统中,很多时候需要使用多个命令一起配合才能完成一个较复杂的任务,Shell提供了管道线、重定向、结构化编程等方式,把这些命令粘合在一起。因此,命令之间的接口数据的处理...

巨人站在肩膀上 138

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

bash shell基本编程

这里主要讲bash shell 变量 等号之间不能有空格,直接定义变量 追加字符串yes:name=me=${name}yes 特殊变量:环境变量 通过env命令查找,其中一个path环境变量,例如执行ls命令,系统就会去找path下/usr/bin下的ls命令(其中有很多命令)。 把普通变量变成环境变量:export CAT_HOME="blue house" ...

weixin_30555753的博客 143

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

linux脚本查看变量类型,BASH编程基础之变量、条件判断

一、前言在linux中,通常我们所指的脚本编程,指的是bash的脚本编程。bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组。今天我们介绍变量以及流程之一的条件判断。二、变量1、初识变量在编程语言中,编程语言有两大种,强类型语言和弱类型语言。强类型语言中,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。java、.NET、C++等都是...

weixin_42389522的博客 1284

BashSupport的6个一键快速修复:如何自动修正Bash脚本中的常见代码问题

在 JetBrains IDE 中编写 Shell 脚本,**BashSupport** 插件是最常用的 Bash 语言支持方案之一。除了语法高亮和代码补全,它最实用的功能莫过于 **一键快速修复(Quick Fix)**:当脚本存在潜在问题或书写不够规范时,插件会在编辑器中给出黄色波浪线提示,你只需把光标移上去、按 `Alt+Enter`,即可自动修正——无需手改代码。 本文将带你快速了解 B

gitblog_01072的博客 405

实验记录 | 6/29

使用scSplitter拆分10X 的数据的时候,出现了问题。 EXITING because of FATAL ERROR in reads input: quality string length is not equal to sequence length @ST-K00126:608:HWNLJBBXX:6:2115:23480:3459 @ST-K00126:608:HWNLJBBXX:6:1212:4005:42513 2:N:0:GATCTCAG SOLUTION: fix your fa

weixin_40640700的博客 1777

终极指南:如何用curlconverter将curl命令转换为29种编程语言代码

你是否经常需要在不同编程语言中重复编写相同的HTTP请求代码?curlconverter正是解决这一痛点的终极工具,它能将curl命令快速转换为Python、JavaScript、Go、PHP等29种编程语言的HTTP客户端代码。这款强大的curl命令转换工具让跨语言开发变得简单高效。 ## 核心问题:跨语言HTTP请求开发的复杂性 在现代软件开发中,我们经常需要在不同技术栈之间切换。一个AP

gitblog_00848的博客 599

29个常用的Linux命令

以下内容来自公众号:JAVA虽然Linux发行版支持各种各样的GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快...

UTF80的博客 260

时分秒换算:从基础概念到工程实践的高效处理指南

时间单位换算是数据处理与系统开发中的基础操作,其核心原理在于不同时间单位(时、分、秒、毫秒)之间的进制转换关系。理解并熟练运用“乘以60”或“除以60”的底层逻辑,是进行高效、准确换算的关键。这一基础技能在工程实践中具有重要价值,它能显著提升数据处理、日志分析、定时任务配置及性能监控等场景下的工作效率与准确性。具体到应用层面,开发者常需在命令行环境、Python脚本、SQL查询及大规模数据处理框架中处理时间间隔。例如,通过建立“3600秒=1小时”等核心基准锚点,可以快速形成换算直觉;而在代码中,则需注意处

aoe41606的博客 526
上一篇: Bash字符串处理(与Java对照) - 28.去除前后空白
下一篇: 在Linux下怎样将光盘转储为iso镜像文件
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值