1. ホーム
  2. シェル

shell ファイル名が特定の文字で始まっているかどうかを判断する方法

2022-02-25 13:36:39
質問です。シェルはどのようにファイル名が特定の文字で始まっているかどうかを判断することができますか?



解決方法



#var="cn me"の長さを取得します。



#$1: パラメータ1 判定するファイル名を渡します。



var=$1



isCN=false











#${var:0:2} は var の部分文字列を 0 文字目から 2 文字分取ります。











if [[ ${var:0:2} -eq "cn" ]] ]。



では



echo sub is chinese ${var:0:2}.



さもなければ



echo sub is english ${var:0:2}.



フィ



#機能: 判定



ISCN()



{



if [[ ${var:0:2} -eq "cn" ]] ]。



では



  echo "ISCN"で。



  isCN=true



フィ



}











#実行機能



ISCN











echo 最後のisCN $isCN



=================================================================



I. シェルはよく使われる部分文字列を取る。



1)



echo ${string:1:2}とする。



2) echo $string |cut -c 2-3 (文字列の2文字目から3文字目を取る)











第二に、文字列の処理











含まれるもの:インターセプト、ジョイン、マッチ、リプレース、フリップ... ... 



文字列の取り扱い。



1、インターセプト



方法1.



echo $a|awk '{print substr( ,1,8)}'.



substr は awk のサブ関数で、最初の引数を 1 文字目から順に合計 8 文字で傍受し、文字数が足りなければ 2 文字目を埋めるというものです



方法2



echo $a|cut -b2-8



cut: 標準入力文字列の処理



cut -bn-m: mバイトをバイト単位で、nバイト目から取り出す



cut -bn,m:n番目のバイトをバイト単位で切り出す



cut -b-n,m: 1-n、および m 番目のバイトをバイト単位で切ります。



-c:文字中



-d:セパレータを指定、デフォルトはタブ



-s:標準入力からデリメーターを欠落させる



cut -f1:1番目のフィールドをインターセプトします。 



方法3



a=123456



echo ${string:1:2}とする。



方法4



sedを使って、文字列の最後の2桁を傍受する



echo $test |sed 's//(. */)/(. /)$//'



文字列の最初の2ビットをインターセプトする



echo $test |sed 's/^/(. /)/(. */)//'



007コンピュータ情報へようこそ



2、比較する



比較するものがないようです



3、コネクション



$a$b



または



文字列 



4、フリップ



方法1



revコマンドを使用する



方法2



を実装するためのスクリプトを書く。



#! /usr/bin/awk -f



################################################################



# 説明 : awk での重複した rev







{



revline = ""



for (i=1;i<=length;i++)



{



revline = substr(,i,1) revline



}



}



END{print revline}を表示します。











5, マッチ



グレップ



イーグレップ



フグレップ



6、ソート



7, 置換



bashの場合。



x=abcdabcd 



%echo $ # 1つだけ置換する 



bbcdabcd 



%echo $ # すべてを置き換える 



bbcdbbcd 



Shで。



????



置き換え方法



sedを使用する



すべてのマッチを置き換える



echo $test |sed 's/xx/yy'



単一マッチの置換



?



8で、文字列の長さを取得します。



bashの場合



$



または



expr "$VAR" : '. *'



9, 文字列が数字であるかどうかを判断する 



10, 文字列中のある文字の繰り返し回数を取得する



echo $a |tr "x" "/n" |wc -l



得られた結果から1を差し引く必要があります。



または echo $a |awk -F"x" '{print NF-1}' です。 



11、文字列の中の繰り返しの回数を取得する 007コンピュータニュース 



12、ファイルのバッチ内のすべての文字列を置き換える



for i in file_list 



する 



vi $i <<-! 



:g/xxxx/s/XXXX/g 



:wq 







完了



13, 文字列のすべての2文字の間に文字を挿入する方法



sedの使用



echo $test |sed 's/.... /&[insert char]/g'