日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux的scan命令,linux的scan命令

發(fā)布時(shí)間:2023/12/4 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux的scan命令,linux的scan命令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux下scan命令主要是以scanf的形式使用轉(zhuǎn)換符解析字符串,下面由秋天網(wǎng) Qiutian.ZqNF.Com小編為大家整理了linux下scan命令的相關(guān)知識(shí),希望對(duì)大家有幫助!

linux的scan命令詳解

scan - 以sscanf的形式使用轉(zhuǎn)換符解析字符串

語(yǔ)法:

scan string format ?varname varname ...?

介紹:

scan命令根據(jù)format的格式解析string并給varname賦值,返回成功轉(zhuǎn)換的次數(shù)。如果沒有提供varname,將以列表形式返回scan匹配值

scan命令和format命令類似.支持的轉(zhuǎn)換字符如下:

d

輸入必須為一個(gè)十進(jìn)制整數(shù)。其被讀入并以十進(jìn)制字符串方式存入變量。如果提供l或者l此類修改器字符,則掃描的值將以64-bit形式表示

o

輸入必須為一個(gè)八進(jìn)制整數(shù)。其被讀入并以十進(jìn)制字符串方式存入變量。如果提供l或者l此類修改器字符,則掃描的值將以64-bit形式表示。如果其值超過max_int(當(dāng)沒有l(wèi)或者l時(shí),32-bit平臺(tái)為017777777777),將被截?cái)喑梢粋€(gè)有符號(hào)整形數(shù)。因此,037777777777 在32-bit機(jī)器上默認(rèn)將被表示為-1

x

輸入必須為一個(gè)十六進(jìn)制整形數(shù)。其被讀入并以十進(jìn)制字符串方式存入變量。如果提供l或者l此類修改器字符,則掃描的值將以64-bit形式表示。如果其值超過max_int(當(dāng)沒有l(wèi)或者l時(shí),32-bit平臺(tái)為017777777777),將被截?cái)喑梢粋€(gè)有符號(hào)整形數(shù)。因此,037777777777 在32-bit機(jī)器上默認(rèn)將被表示為-1

u

輸入必須為一個(gè)十進(jìn)制整形數(shù)。其被讀入并以無(wú)符號(hào)十進(jìn)制字符串方式存入變量。如果提供l或者l此類修改器字符,則掃描的值將以64-bit形式表示。

i

輸入必須為一個(gè)整形數(shù)。進(jìn)制取決于如expr描述的方式。其被讀入并以無(wú)符號(hào)十進(jìn)制字符串方式存入變量。如果提供l或者l此類修改器字符,則掃描的值將以64-bit形式表示。

c

輸入為單字符其二進(jìn)制值以十進(jìn)制字符串形式保存在變量中。初始的空格在這種情況下不會(huì)被跳過,所以輸入可以使空格。這個(gè)轉(zhuǎn)換不同于ansi標(biāo)準(zhǔn)(輸入永遠(yuǎn)由單字符組成并且沒有指定域?qū)挾?

s

輸入由直到下一個(gè)空白符的所有字符組成;字符會(huì)復(fù)制給變量

e f g

輸入必須為由可選的符號(hào),十進(jìn)制字符串以及小數(shù)點(diǎn)組成的浮點(diǎn)數(shù),可選的指數(shù)由e或者e后跟可選符號(hào)以及十進(jìn)制字符串。其被讀入并以浮點(diǎn)型字符串方式存入變量。

[chars]

輸入由任意數(shù)目的字符組成。匹配的字符串存在變量中。用于匹配一組某一范圍的字符,用-表示范圍,如果-出現(xiàn)在最先或者最后被當(dāng)做一個(gè)字符

[^chars]

輸入由任意數(shù)目的字符組成。匹配的字符串存在變量中。用于匹配一組某一范圍的字符以外的部分,用-表示范圍,如果-出現(xiàn)在最先或者最后被當(dāng)做一個(gè)字符

n

不輸入任何字符。掃描字符的總數(shù)取自最近掃描后所存儲(chǔ)的變量

linux的scan命令實(shí)例

將一個(gè)簡(jiǎn)單的顏色代碼(#rrggbb方式)解析為不同域的值

set string "#08d03f"

scan $string "#%2x%2x%2x" r g b

解析hh:mm時(shí)間字符串,注意避免通過強(qiáng)制轉(zhuǎn)換十進(jìn)制而帶來的八進(jìn)制數(shù)問題

set string "08:08" ;# *not* octal!

if {[scan $string "%d:%d" hours minutes] != 2} {

error "not a valid time string"

}

# we have to understand numeric ranges ourselves...

if {$minutes < 0 || $minutes > 59} {

error "invalid number of minutes"

}

將一個(gè)字符串分解成非空格字符的一系列集合(注意使用%n轉(zhuǎn)換使得能夠跳過第一個(gè)空格的字符)

set string " a string {with braced words} + leading space "

set words {}

while {[scan $string %s%n word length] == 2} {

lappend words $word

set string [string range $string $length end]

}

解析一個(gè)簡(jiǎn)單的坐標(biāo)字符串,通過查找顯式終止字符檢查是否完成

set string "(5.2,-4e-2)"

# note that the spaces before the literal parts of

# the scan pattern are significant, and that ")" is

# the unicode character \u0029

if {

[scan $string "(%f,%s %c" x y last] != 3

|| $last != 0x0029

} then {

error "invalid coordinate string"

}

puts "x=$x, y=$y"

總結(jié)

以上是生活随笔為你收集整理的Linux的scan命令,linux的scan命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。