linuxshell字元串
A. linux shell 文件中有多少個字元
Shell中求字元串中單詞的個數的幾種方法
方法一:
[linux@host ~]# echo 'one two three four five' | wc -w5
方法二:
[linux@host ~]# echo 'one two three four five' | awk '{print NF}'5
方法三:
[linux@host ~]# s='one two three four five'[linux@host ~]# set ${s}[linux@host ~]# echo $#5
方法四:
[linux@host ~]# s='one two three four five'[linux@host ~]# a=($s)[linux@host ~]# echo ${#a[@]}
方法五:
[linux@host ~]# s='one two three four five'[linux@host ~]# echo $s | tr ' ' '\n' | wc -l 命令詳細介紹請查看「Linux命令大全」。
B. linux在shell下如何將字元串寫入文件
可以使用echo命令將文本流導向標准輸出,然後再使用>符號重新定向標准輸出到文件。
用法示例:
將字元串"hello world"寫入文件file.txt中
$ echo "hello world" > file.txt
然後再嘗試用cat命令從讀取文件並寫入到標准輸出,可以看到字元串已經成功寫入文件。
$ cat file.txt
C. linux shell 腳本中怎樣將字元串轉化為命令
字元串加上反引號``就能執行字元串中的命令了,示例:
#!/bin/bash
cmd="ls-l"
result=`$cmd`
echo$result
D. Linux shell 中單引號字元串裡面有單引號字元怎麼辦
Linux shell 中單引號字元串裡面有單引號字元解決:
$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"
mocha.reporter('json')
有單引號的情況就用雙引號唄
$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'
mocha.reporter('json')
或者也可以這樣、加個$讓bash轉義
控制字元
轉義字元不屬於控制字元;控制字元也不屬於轉義字元。如果控制字元的定義是非圖形的字元,或者對輸出設備(列印機、文本終端)有特殊意義的字元,那麼針對這些設備的轉義字元也是控制字元。但是程序設計用的轉義字元是圖形字元,因此它們不是控制字元。相反地,大多數ASCII控制字元單獨都具有控制功能,因此它們不是轉義字元。
E. linux shell怎麼查找文件中指定字元串,並把該字元串和下一行的內容寫到另一個文件中
有兩種寫入方式:
1、grep
-i
"aaa"
-A
1
1.txt
|
grep
-v
-e
"--"
>2.txt
grep 指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為「-」,則grep指令會從標准輸入設備讀取數據。
2、awk
'/aaa/{getline
var;print
$1"\n"
var}'
1.txt
>2.txt
awk語言的最基本功能是在文件或者字元串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。
linuxshell中引號的使用方法:
shell使用引號(單引號/雙引號)和反斜線("\")用於向shell解釋器屏蔽一些特殊字元,反引號(")對shell則有特殊意義。
如:abc="how
are
you"
(bash/pdksh)
set
abc
=
"how
are
you"
(tcsh)
這個命令行把三個單片語成的字元串how
are
you作為一個整體賦值給變數abc.
abc1='@LOGNAME,how
are
you!'
(bash/pdksh)
set
abc1='$LOGNAME,how
are
you!'
(tcsh)
abc2="$LOGNAME,how
are
you!"
(bash/pdksh)
set
abc2="$LOGNAME,how
are
you!"
(tcsh)。
F. Linux的shell編程中,如何將一段字元串進行截取
簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。
一、Linux shell 截取字元變數的前8位,有方法如下:
G. Linux:用shell如何實現讀取一個字元串的第n個字元呢
代碼如下:
str="/home/gateman"
if [ ${str:0:1} = "/" ]; then
echo "yes'
fi
${str:0:1} 中0表示從第幾個字元開始,1表示截取多長。
Shell是一種腳本語言,那麼,就必須有解釋器來執行這些腳本,常見的腳本解釋器有:
bash:是Linux標准默認的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。
sh:由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 標准默認的shell。
另外還有:ash、 csh、 ksh等。
(7)linuxshell字元串擴展閱讀
Linux shell 截取字元變數的前8位:
實現方法有如下幾種:
expr substr 「$a」 1 8
echo $a|awk 『{print substr(,1,8)}』
echo $a|cut -c1-8
echo $
expr $a : 『(.\).*』
echo $a|dd bs=1 count=8 2>/dev/null
按照指定要求分割:
比如獲取後綴名
ls -al | cut -d 「.」 -f2
小結:shell對應字元串的處理方法很多,根據需求靈活選擇。
在做shell批處理程序時候,經常會涉及到字元串相關操作。有很多命令語句,如:awk,sed都可以做字元串各種操作。 其實shell內置一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程序等時間,因此速度會非常的快。
H. 如何在Linux shell下做中文字元串的匹配
a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\{8\}\).*' )
echo $a
linux shell 中可以將命令的結果賦值給變數,$(命令)這種格式將返回命令執行後的結果字元串
上面命令執行後,變數a的值是20140501
a=`echo 'helloworld20140501.txt'|sed 's/.*\([0-9]\{8\}\).*/\1/'`
這個命令作用也是一樣,變數a被賦值為20140501!
I. Linux shell 中如何從路徑名提取指定字元串
以
-
為分隔符,用cut命令取第二個欄位就行了啊(只要路徑名里不含
-
即可)
echo
"/home/lxy/hhhhh-a.bbb.cc.d"
|
cut
-d'-'
-f2
更保險一點的做法是先取出文件名(防止路徑名里含
-
),然後再用上述方法處理:
echo
"/home/lxy/hhhhh-a.bbb.cc.d"
|
awk
-F/
'{print
$NF}'
|
cut
-d'-'
-f2
J. linux shell中幾種特殊變數和字元串的截取
簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。
一、Linux shell 截取字元變數的前8位,有方法如下: