逆引きシェルスクリプト/文字列の長さを調べる方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 文字列の長さを調べる方法 [#ie493736]
シェルスクリプトで文字列の長さを調べたい場合は、以下の方...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 変数に格納されている文字列長を取得 [#n923e67e]
${#変数名}
- 実行結果
$ hello="Hello world"
$ echo ${#hello}
11
* 変数に格納されていない文字列長を取得 [#o0f3bf78]
wcコマンドとexprコマンドを使用した2つの例を以下に記します。
** 変数に格納されていない文字列長を取得・その1(wcコマン...
wcコマンドにより''バイト数''を取得できます。
- 実行結果~
echoコマンドの場合、改行コード分も含まれるので以下の実行...
$ echo "hello world" | wc -c
12
改行をしないように-nをつけると以下の実行結果となります。
$ echo -n "hello world" | wc -c
11
** 変数に格納されていない文字列長を取得・その2(exprコマ...
exprコマンドにより文字列長を取得することもできます。
expr length 文字列
- 実行結果~
$ expr length "hello world"
11
* ファイル内の各行の文字列長を取得する [#o5cfffc3]
以下のようなファイル内容の場合の例を記します。
$ cat hello.txt
HELLO WORLD
KONNICHIWA
NIHAO
以下、wcコマンドとexprコマンドを利用した2つの例を記します。
** ファイル内の各行の文字列長を取得する(wcコマンド編) [#m...
$ for L in `cat hello.txt`
> do
> echo $L | wc -c
> done
6
6
11
6
HELLO と WORLDの間にスペースがあるため、分割して表示され...
IFSの値を変更し行単位で動作するようにします。
IFSの値を変更することにより、行単位で動作するようになりま...
処理終了後、IFSの値をもとに戻しています。
$ for L in `cat hello.txt`; do echo $L | wc -c; done
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do echo $L | wc -c; done
12
11
6
$ IFS=$IFS_BACKUP
上記の場合だと、改行コード分のバイト数が含まれているので ...
$ IFS=$IFS_BACKUP
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do echo -n $L | wc -c; done
11
10
5
$ IFS_BACKUP=$IFS
** ファイル内の各行の文字列長を取得する(exprコマンド編) [...
上記のwcコマンド例と同様に、IFSを指定しないとスペースが区...
改行文字はカウントされていないのがわかります。
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do expr length $L; done
11
10
5
$ IFS_BACKUP=$IFS
* 関連記事 [#e7286b6d]
- [[逆引きシェルスクリプト/スペースが含まれる文字列を1行...
- [[逆引きUNIXコマンド/整数演算を行う・exprコマンド]]
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* 文字列の長さを調べる方法 [#ie493736]
シェルスクリプトで文字列の長さを調べたい場合は、以下の方...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 変数に格納されている文字列長を取得 [#n923e67e]
${#変数名}
- 実行結果
$ hello="Hello world"
$ echo ${#hello}
11
* 変数に格納されていない文字列長を取得 [#o0f3bf78]
wcコマンドとexprコマンドを使用した2つの例を以下に記します。
** 変数に格納されていない文字列長を取得・その1(wcコマン...
wcコマンドにより''バイト数''を取得できます。
- 実行結果~
echoコマンドの場合、改行コード分も含まれるので以下の実行...
$ echo "hello world" | wc -c
12
改行をしないように-nをつけると以下の実行結果となります。
$ echo -n "hello world" | wc -c
11
** 変数に格納されていない文字列長を取得・その2(exprコマ...
exprコマンドにより文字列長を取得することもできます。
expr length 文字列
- 実行結果~
$ expr length "hello world"
11
* ファイル内の各行の文字列長を取得する [#o5cfffc3]
以下のようなファイル内容の場合の例を記します。
$ cat hello.txt
HELLO WORLD
KONNICHIWA
NIHAO
以下、wcコマンドとexprコマンドを利用した2つの例を記します。
** ファイル内の各行の文字列長を取得する(wcコマンド編) [#m...
$ for L in `cat hello.txt`
> do
> echo $L | wc -c
> done
6
6
11
6
HELLO と WORLDの間にスペースがあるため、分割して表示され...
IFSの値を変更し行単位で動作するようにします。
IFSの値を変更することにより、行単位で動作するようになりま...
処理終了後、IFSの値をもとに戻しています。
$ for L in `cat hello.txt`; do echo $L | wc -c; done
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do echo $L | wc -c; done
12
11
6
$ IFS=$IFS_BACKUP
上記の場合だと、改行コード分のバイト数が含まれているので ...
$ IFS=$IFS_BACKUP
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do echo -n $L | wc -c; done
11
10
5
$ IFS_BACKUP=$IFS
** ファイル内の各行の文字列長を取得する(exprコマンド編) [...
上記のwcコマンド例と同様に、IFSを指定しないとスペースが区...
改行文字はカウントされていないのがわかります。
$ IFS_BACKUP=$IFS
$ IFS=$'\n'
$ for L in `cat hello.txt`; do expr length $L; done
11
10
5
$ IFS_BACKUP=$IFS
* 関連記事 [#e7286b6d]
- [[逆引きシェルスクリプト/スペースが含まれる文字列を1行...
- [[逆引きUNIXコマンド/整数演算を行う・exprコマンド]]
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: