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'
解決方法
#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'
関連
-
[解決済み】"ERROR. "を取得。ZooKeeperからマスターアドレスを取得できない。znode data == null" Hbaseシェル使用時
-
[解決済み] "No such file or directory "と表示されるが、存在する
-
[解決済み] AWS cliの変数を置換して、シークレットマネージャーのパスワードを更新する。
-
[解決済み] タブを区切り記号として指定するカットコマンド【閉じた状態
-
[解決済み] sed が正規表現で終端がない代用品でエラーになる
-
[解決済み] usr/bin/envはどのような効果があるのでしょうか?
-
Linuxシェルプログラミングのエラー "bad substitution "の解決法
-
文字列 null with space エラー: 二項演算子が期待されています。
-
シェルwhileループのエラー曖昧なリダイレクトとwhileループの変数割り当て失敗問題
-
linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン