亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 截取字符串(除后N位外) [打印本頁]

作者: hjfeng1988    時(shí)間: 2014-10-17 16:01
標(biāo)題: 截取字符串(除后N位外)
本帖最后由 hjfeng1988 于 2014-10-17 16:04 編輯

例子:(前提不知道有幾位)
var="1_24_12345678"
結(jié)果:(除了后面4位外)
1_24_1234


想法一、
通過獲取變量var的總個(gè)數(shù),減去4,再取值
  1. num=$(($(echo ${#var}) - 4 ))
  2. echo ${var:0:$num}
復(fù)制代碼
想法二、
將var反過來顯示rav=$(echo "$var" |rev)
echo ${var:4}取完再反顯示一次

可有其他簡單霸氣的方法
作者: ly5066113    時(shí)間: 2014-10-17 16:03
回復(fù) 1# hjfeng1988


echo $var | sed 's/....$//'
作者: hjfeng1988    時(shí)間: 2014-10-17 16:05
回復(fù) 2# ly5066113


    {:3_185:} 為何我就沒想到
作者: 可惡的    時(shí)間: 2014-10-17 16:11
  1. echo '1_24_12345678' | awk '{print substr($1,1,length($1)-4)}'
復(fù)制代碼

作者: hjfeng1988    時(shí)間: 2014-10-17 16:19
回復(fù) 4# 可惡的


   這個(gè)也不錯(cuò), 學(xué)習(xí)了{(lán):2_176:}
作者: zxy877298415    時(shí)間: 2014-10-17 16:23
回復(fù) 1# hjfeng1988
awk -F ''   '{for (i=1;i<=length($0);i++) printf $i }'


   
作者: Buring__    時(shí)間: 2014-10-17 16:30
echo ${var:0:-4}
作者: hjfeng1988    時(shí)間: 2014-10-17 16:33
回復(fù) 7# Buring__
  1. [root@localhost ~]# echo $var
  2. 91ios_A18_201408111405
  3. [root@localhost ~]# echo ${var:0:-4}
  4. -bash: -4: substring expression < 0
復(fù)制代碼

作者: Buring__    時(shí)間: 2014-10-17 16:38
回復(fù) 8# hjfeng1988

可能是版本問題吧
GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)

   
作者: hjfeng1988    時(shí)間: 2014-10-17 16:47
本帖最后由 hjfeng1988 于 2014-10-17 16:51 編輯

回復(fù) 9# Buring__


    應(yīng)該是
  1. [root@localhost ~]# echo $var
  2. 91ios_A18_201408111405
  3. [root@localhost ~]# echo ${var:0:-4}
  4. -bash: -4: substring expression < 0
  5. [root@localhost ~]# bash --version
  6. GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
復(fù)制代碼
  1. [root@localhost ~]# echo $var
  2. 91ios_A18_201408111405
  3. [root@localhost ~]# echo ${var:0:-4}
  4. 91ios_A18_20140811
  5. [root@localhost ~]# bash --version
  6. GNU bash, version 4.2.45(1)-release (x86_64-redhat-linux-gnu)
復(fù)制代碼
你這玩的是centos 7
作者: Buring__    時(shí)間: 2014-10-17 16:51
回復(fù) 10# hjfeng1988


    ubuntu 12.04
    這不是前段時(shí)間的漏洞, 把bash都更新了么

作者: hjfeng1988    時(shí)間: 2014-10-17 16:53
回復(fù) 11# Buring__


    公司對(duì)安全不夠**,我們沒升級(jí){:2_169:}
作者: icyfish28    時(shí)間: 2014-10-18 02:15
echo ${var%????}
作者: 李滿滿    時(shí)間: 2014-10-19 13:21
學(xué)生黨:飄過~python試試切片很方便
$ python
Python 2.7.8 (default, Jul 25 2014, 14:04:36)
[GCC 4.8.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> var="1_24_12345678"
>>> var[:-4]
'1_24_1234'

作者: 聆雨淋夜    時(shí)間: 2014-10-20 09:59
回復(fù) 13# icyfish28
這個(gè)方法好


   
作者: 媽說多喝水    時(shí)間: 2016-01-29 14:25
如果是在csh中,該怎么實(shí)現(xiàn)呢?
作者: ydzcjj    時(shí)間: 2016-01-29 14:33
回復(fù) 16# 媽說多喝水


CSH不支持子串替換。
csh最弱的shell。 如果要實(shí)現(xiàn), 就需要借助外部工具,例如,sed,awk,cut,等。
  1. echo “1_24_12345678” | cut -c2-10
復(fù)制代碼

作者: 媽說多喝水    時(shí)間: 2016-01-29 16:51
謝謝。
echo “1_24_12345678” | cut -c2-10
弱弱問一下,針對(duì)這句操作,cut -c2-10輸出的是什么呢?c2和10分別表示什么呢?


   
作者: ydzcjj    時(shí)間: 2016-01-30 15:16
本帖最后由 ydzcjj 于 2016-01-30 15:16 編輯

回復(fù) 18# 媽說多喝水


cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標(biāo)準(zhǔn)輸出。
如果不指定 File 參數(shù),cut 命令將讀取標(biāo)準(zhǔn)輸入。必須指定 -b、-c 或 -f 標(biāo)志之一。
cut -c 2-10   

-c :以字符為單位進(jìn)行分割。
2-10是從第二個(gè)字符到第十個(gè)  截取出來的意思




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2