weixin_45580728 2022-10-29 20:05 采纳率: 14.3%
浏览 73
已结题

shell去除单引号

现在变数file1取得值为:
'10001-999.pdf'
'10002-997-20221029.pdf'
这样的。

如果想去除前后的单引号应该怎么写啊。
edit=${file1}| sed
后面该怎么写呢。

  • 写回答

5条回答 默认 最新

  • Java智慧阁 2022-10-30 10:03
    关注

    批量处理可以按照如下,写个shell脚本

    shell脚本剔除单引号

    [root@centos tmp]# chmod 755 dyh.sh 
    [root@centos tmp]# cat dyh.sh 
    #!/bin/sh
    for line in `cat filename.txt`
    do
     echo $line | sed $'s/\'//g' >> result.txt
    done
    
    [root@centos tmp]# 
    
    #测试文件内容:
    [root@centos tmp]# cat filename.txt 
    '10001-999.pdf'
    '10002-997-20221029.pdf'
    '10001-999.pdf'
    '10002-997-20221029.pdf'
    '10002-997-20221031.pdf'
    '10002-997-20221030.pdf'
    [root@centos tmp]# 
    
    #执行调试过程
    [root@centos tmp]# sh -x dyh.sh 
    ++ cat filename.txt
    + for line in '`cat filename.txt`'
    + echo ''\''10001-999.pdf'\'''
    + sed 's/'\''//g'
    + for line in '`cat filename.txt`'
    + echo ''\''10002-997-20221029.pdf'\'''
    + sed 's/'\''//g'
    + for line in '`cat filename.txt`'
    + echo ''\''10001-999.pdf'\'''
    + sed 's/'\''//g'
    + for line in '`cat filename.txt`'
    + echo ''\''10002-997-20221029.pdf'\'''
    + sed 's/'\''//g'
    + for line in '`cat filename.txt`'
    + echo ''\''10002-997-20221031.pdf'\'''
    + sed 's/'\''//g'
    + for line in '`cat filename.txt`'
    + echo ''\''10002-997-20221030.pdf'\'''
    + sed 's/'\''//g'
    
    #执行结果
    [root@centos tmp]# cat result.txt 
    10001-999.pdf
    10002-997-20221029.pdf
    10001-999.pdf
    10002-997-20221029.pdf
    10001-999.pdf
    10002-997-20221029.pdf
    10002-997-20221031.pdf
    10002-997-20221030.pdf
    [root@centos tmp]# 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 10月29日