首页 > 系统相关 >shell 给字符串双引号,并去除多余的空格

shell 给字符串双引号,并去除多余的空格

时间:2024-03-11 15:33:59浏览次数:20  
标签:shell 双引号 key3 key2 key1 tr 空格 字符串

用到的命令:

  1. echo 输出字符串
  2. tr 常用于处理字符串间隔,例如将空格分割替换为逗号分割;删除多个连续的空格等等
  3. sed 也是用于字符串处理。如字符串替换,也可做字符串删除
  4. awk 也用于字符串处理。如将字符串按照空格等分隔符,分成好几列,按需输出某一列的值;字符计数,统计次数;复杂的字符串处理等。

案例
例如:将 “ key1 key2 key3 ” 这个字符串的分隔符变更为"," ,并删除多余的空格,同时给每个元素都加上单引号 ''.

`1. 首先将多个空格压缩为一个空格。使用命令 tr -s
echo " key1 key2 key3 " | tr -s ' '
key1 key2 key3

  1. 现在就可以给元素加上''单引号了,同时加上,逗号作为分隔符。awk -F 可以指定字符串的分隔符,不指定默认使用空格分割。\047是'单引号对应的ascii码的值。最后的"" 是一个空字符串。这里使用 print "" 的目的通常是为了在输出中添加一个换行符,因为 print 函数在打印文本后会自动添加一个换行符。
    echo " key1 key2 key3 " | tr -s ' '| awk '{for(i=1; i<=NF;i++) printf("\047%s\047,", $i);print ""}'
    'key1','key2','key3',

  2. 最后,删除多余的逗号 , 。我们使用sed 来实现。

    • s/,*//:这个操作匹配字符串开头的零个或多个逗号(,*),并替换它们为空字符串(即删除它们)。
    • s/,$//:这个操作匹配字符串末尾的零个或多个逗号(,$),并同样替换它们为空字符串。

echo " key1 key2 key3 " | tr -s ' '| awk '{for(i=1; i<=NF;i++) printf("\047%s\047,", $i);print ""}'| sed 's/^,//;s/,$//'
'key1','key2','key3'`

完整过程:

tr 其他常见用法:
tr -d ' ' 删除字符串中的单个或多个连续的空格
tr ' ', ',' 将字符串的空格替换为 ','逗号

标签:shell,双引号,key3,key2,key1,tr,空格,字符串
From: https://www.cnblogs.com/littleboss/p/18066125

相关文章

  • linux Shell 命令行-03-array Shell 数组
    拓展阅读linuxShell命令行-00-intro入门介绍linuxShell命令行-02-var变量linuxShell命令行-03-array数组linuxShell命令行-04-operator操作符linuxShell命令行-05-test验证是否符合条件linuxShell命令行-06-flowcontrol流程控制linuxShell命令行-07-f......
  • CMD和power shell命令
    CMD命令:calc寄存器devmgmt.msc设备管理器dvdplayDVD播放器explorer打开资源管理器notepad打开记事本magnify放大镜实用程序mspaint画板mstsc远程桌面连接narrator屏幕“讲述人”osk打开屏幕键盘regedit.exe注册表write写字板control控制面板desk.cpl......
  • linux Shell 命令行-01-intro 入门介绍
    拓展阅读linuxShell命令行-00-intro入门介绍linuxShell命令行-02-var变量linuxShell命令行-03-array数组linuxShell命令行-04-operator操作符linuxShell命令行-05-test验证是否符合条件linuxShell命令行-06-flowcontrol流程控制linuxShell命令行-07-f......
  • Shell排序复杂度分析
    Shell排序复杂度分析1.大致思想可以把希尔排序看作是发牌员,给每人轮流发一张牌。需要给n个人发牌,每人从第二张开始分别进行插入排序,那么第一轮下来后,每人的牌就是有序的。接下来按照刚刚的发牌顺序把牌再收起来,减少人数,不断重复这个步骤,直到只剩下一个人,那么就是直接插入排序......
  • webshell 管理工具流量特征分析
    1.冰蝎基于冰蝎的加密流量威胁,剖析其通信原理,冰蝎的通信过程可以分为两个阶段:密钥协商以及加密传输。第一阶段:密钥协商攻击者通过GET或者POST方法,形如(http://127.0.0.1/shell.aspx?pass=645)的请求服务器密钥。服务器使用随机数MD5的高16位作为密钥,存储到会话的$_SESS......
  • Prettier缩进改制表符等于的空格数
    1.缩进改制表符等于的空格数修改为41.1问题VSCODE中Prettier插件中制表符'\t'默认的空格数为2,而我们一般空格数对应为4,这就导致我们很多时候看着不舒服,如何修改呢?1.2解决方法搜索,设置>Prettier:TabWidth,设置为4即可搜索,设置>Prettier:UseTab,勾选即可2.......
  • vim 编辑python文件 禁止tab转换为空格的设置
    1.修改各种路径下的.vimrc都没用2.一个解决方法:每次用vim打开python文件后,分别运行:setts=4(8):setnoexpandtab:%retab!3.其他:安装python编辑的dictionary补全提示插件:filetypepluginonletg:pydiction_location='~/.vim/tools/pydiction/compl......
  • 6-12 奇偶分离排序(关注输出的空格处理)
    6-12奇偶分离排序(关注输出的空格处理)分数10作者王秀单位福州大学输入10个整数,完成一个函数使数据重新排序以后输出(也按空格分隔),要求:输出奇数在前偶数在后函数接口定义:voidsort_tarray(int*a);裁判测试程序样例:#include<cstdio>#include<iostream>#inclu......
  • 中转Webshell绕过流量检测防护
    0x01原理这里先给大家介绍一句话木马和菜刀的工作原理,了解的可以往下面翻一句话木马先说说一句话木马的原理<?phpeval($_POST['c']);?>先说说eval()这个函数简单点说,eval()这个函数会把参数当作代码来执行什么叫做把参数当作代码来执行,简单举个例子<?phpphpinfo();?>......
  • Golang 执行shell命令
    Golang执行shell命令参考:golang执行shell命令大全https://saucer-man.com/backend_development/571.html1.执行命令并获得输出结果CombinedOutput()  返回standardoutputandstandarderrorfuncmain(){cmd:=exec.Command("ls","-lah")out,err:=......