问题描述

我有一个这样的字符串:

|abcdefg|

我想要得到一个新的字符串(如string2)与原始字符串调用没有两个|在开始和结束时

所以我会有这个

abcdefg

在bash中可能吗?

最佳解决方法

你可以做

string="|abcdefg|"

string2=${string#"|"}

string2=${string2%"|"}

echo $string2

或者如果你的字符串长度不变,你可以做

string="|abcdefg|"

string2=${string:1:7}

echo $string2

此外,这应该工作

echo "|abcdefg|" | cut -d "|" -f 2

另外这个

echo "|abcdefg|" | sed 's/^|\(.*\)|$/\1/'

次佳解决方法

这是一个独立于字符串长度(bash)的解决方案:

string="|abcdefg|"

echo "${string:1:${#string}-2}"

第三种解决方法

在这里列出的几个帖子看起来最简单的方法是:

string="|abcdefg|"

echo ${string:1:-1}

编辑:工程与bash 4.2 Ubuntu的;不能用bash 4.1在centOS上工作

第四种方法

另一个:

string="|abcdefg|"

echo "${string//|/}"

第五种方法

另一种方式与头&尾巴:

$ echo -n "|abcdefg|" | tail -c +2 | head -c -1

abcdefg

第六种方法

您也可以使用sed删除|不只是引用符号本身,而是使用位置引用,如下所示:

$ echo "|abcdefg|" | sed 's:^.\(.*\).$:\1:'

abcdefg

如果’:’是分隔符(你可以用/或者不是在查询中的任何字符替换它们,任何跟在s后面的符号都会这样做)这里^(caret)表示输入字符串的开头,$(dollar)表示在结束。这个。 (点)它在插入符号之后,并且在美元符号代表单个字符之前。换句话说,我们正在删除第一个和最后一个字符。请记住,即使|也会删除任何字符它不存在于字符串中。

EX:

$ echo "abcdefg" | sed 's:^.\(.*\).$:\1:'

bcdef

参考资料

linux删除最后一个字符串,Bash删除字符串中的第一个和最后一个字符相关推荐

  1. java替换最后一个字符_Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字...

    学习Excel技术,关注微信公众号: excelperfect 在很多情况下,我们都面临着需要确定字符串中第一个和最后一个数字的位置的问题,这可能是为了提取包围在这两个边界内的子字符串.然而,通常的公 ...

  2. java 字符串编程题_Java编程题——在一个字符串中查找第一个非重复的字符

    编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题.面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串, ...

  3. C#交换数组中的第一个和最后一个、第二个和倒数第二个,以此类推,把数组进行反转并打印

    //交换数组中的第一个和最后一个.第二个和倒数第二个,以此类推,把数组进行反转并打印Console.WriteLine("数组练习题5");int[] arr8 = new int ...

  4. es6字符串添加html标签,JavaScript_详解JavaScript ES6中的模板字符串,在 ES6 中引入了一种新的字符 - phpStudy...

    详解JavaScript ES6中的模板字符串 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用反引号 (`) 表示,它们看上去和普通的字符串没有什么区别.在最简单的情况下,他们就是 ...

  5. Linux shell 对话框,如何在 Bash Shell 脚本中显示对话框

    原标题:如何在 Bash Shell 脚本中显示对话框 这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子.使用这些工具,你的脚本能够 ...

  6. python如何创建一个列表_使用python中的format()创建一个列表(make a list using format() in python)...

    使用python中的format()创建一个列表(make a list using format() in python) 我是python和编码的新手. 因此,如果已经讨论过这件事,我很抱歉,我无 ...

  7. 什么工具可以分析php源代码,PHP_一个可以找出源代码中所有中文的工具,一个可以找出源代码中所有中 - phpStudy...

    一个可以找出源代码中所有中文的工具 一个可以找出源代码中所有中文的工具 填写需要查找的路径$sf即可. 功能 1 找出所有中文 2 忽略注释语句中的中文 3 可添加需要忽略的文件和文件夹 4 生成日志 ...

  8. 一个完美网站的101项指标.第一部分.概述收藏一个完美网站的101项指标第一部分.概述...

    一个完美网站的101项指标 第一部分.概述 前言 世 界上最有趣的职业是网站设计师,有人为自己的作品喊价5000美金,有人129美金就行,而很多人根本看不出这两者的差别,我见过一个加拿大 Freela ...

  9. linux空格转义,如何在bash循环列表中转义空格?

    首先,不要这样做.最好的办法是正确使用find -exec: # this is safe find test -type d -exec echo '{}' + 另一个安全的方法是使用NUL终止列表 ...

最新文章

  1. Android系统默认Home应用程序(Launcher)的启动过程源代码分析
  2. 百度飞桨入选互联网领先科技成果,王海峰:AI进入工业化大生产新阶段
  3. 点云三维重建有关原理
  4. html 渐变透明写法,CSS3透明度+渐变
  5. 光流 | 使用Horn-Schunck方法进行光流估计(附代码)
  6. 【音视频安卓开发 (六)】Android GLSurfaceView播放视频
  7. 手机连接投影机的步骤_家用投影仪如何安装 家用投影仪安装方法【步骤详解】...
  8. 包含min函数的栈(important)
  9. QThread(一)_vortex_新浪博客
  10. 实现iOS长时间后台的两种方法:Audiosession和VOIP(转)
  11. 电脑端QQ无法打开怎么办
  12. Qt学习之资源文件(qrc)的添加以及使用
  13. IIC详解之AT24C08
  14. 证照之星下载证件照制作软件ps及使用教程,附序列号秘钥激活码
  15. DAY11:尚学堂高琪JAVA(116~118)
  16. Altium Designer 多引脚元件快速画法 Smart Grid Insert
  17. 高通SDX62平台 MBIM搜网、查询信号等功能异常
  18. 解析 | 模-数(A/D)转换器
  19. Centos下启动和关闭MySQL
  20. 当代年轻人熬夜晚睡的原因找到了!

热门文章

  1. java调用spark_spark中的并行方法调用以及传递方法中使用spark会话
  2. python opencv imread(filename, flags=None) 读取图像 flags cv::ImreadModes 参数上哪看去?
  3. C++中的 auto类型详解
  4. 二值mask图像 + RGB原图 生成可视化分割结果; 从二值mask获取分割轮廓点
  5. 第九届蓝桥杯大赛软件赛省赛 C/C++ 大学B组
  6. EXCEL导入导出使用的框架
  7. Error while adding the mapper ‘interface *****类‘ to configuration报错原因
  8. java实现二进制转16进制
  9. win7/10 画图程序按宽度高度mm cm精确调整图片尺寸
  10. 什么是云服务举例说明_云服务是什么功能