rokkonet
2018年7月29日日曜日
bashならできる変数内文字列置換
2018 Jul. 29.
${変数名/置換前文字列/置換後文字列}
最初に一致した部分のみを置き換える。
${変数名/置換前文字列//置換後文字列}
すべての一致部分を置き換える。
bash 文字列の末尾の削除
2018 Jul. 29.
bashでの文字列Strの末尾の削除
echo ${Str/%?/}
2018年7月28日土曜日
grub2の起動ディスクMGRへのインストール
2018 Jul. 28.
/と/bootが同じパーティションの場合
# grub-install /dev/HDD
/と/bootが異なるパーティションの場合
# grub-install --root-directory=/ /dev/HDD
ubuntu系でのビデオカードと利用ドライバの調べ方
2018 Jul. 28.
ビデオカード
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:0d.0 ==
modalias : pci:v000010DEd000003D0sv00001028sd0000020Ebc03sc00i00
vendor : NVIDIA Corporation
model : C61 [GeForce 6150SE nForce 430] (Inspiron 531)
driver : nvidia-304 - third-party free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
ドライバ
$ lshw -c video 2>&1 | grep driver
設定: driver=nouveau latency=0
NFSクライアント設定
2018 Jul. 28.
xubuntu18.04, xubuntu16.04
portmap をインストールし、再起動する
# apt-get install portmap nfs-common
# shutdown -r now
/etc/fstab へ書き込む
HOST:/DIR /CLIENT-DIR nfs rw,noatime,intr,hard 0 0
2018年7月21日土曜日
シェルスクリプト 文字列から先頭の1文字を削除した上で、直前が\もしくは"ではない"までを最短一致で削除する
2018 Jul. 21.
bash上で、文字列Lineから先頭の1文字を削除した上で、直前が\もしくは"ではない"までを最短一致で削除する
LeftLine=${Line:1:$(( ${#Line} - 1 ))} # 先頭文字削除
DelStr=$(echo $LeftLine | grep -oP -e '^.*?[^\\"]"[^"]') # 最短一致削除文字列取得
DelStr=${DelStr/%?/} # 余分に取得した末尾文字を削除
DelStr=$(echo $DelStr | sed -e 's/\\/\\\\/g') # \を\でエスケープし\\に
echo $LeftLine | sed -e s/${DelStr}// # 削除実行
${parameter/pattern/string}
パターンの置換。 pattern が展開され、 パス名展開の場合と同じようなパターンを作ります。 parameter の展開が行われ、 その値のうち pattern に最長一致する部分が string に置換されます。 pattern が / で始まる場合には、pattern に マッチした部分は全て string に置換されます。 そうでない場合には、最初にマッチした部分だけが置換されます。 pattern が # で始まる場合には、パターンは parameter を展開した値の先頭にマッチしなければなりません。 pattern が % で始まる場合には、パターンは parameter を展開した値の末尾にマッチしなければなりません。 string が空の場合には pattern にマッチした部分は削除されます。 またこの場合には、pattern の後に続く / は省略可能です。 parameter が @ または * である場合、置換操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 置換操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。
シェルスクリプト 文字列から直前に\(バックスラッシュ)が無い"(二重引用符)までを削除する
2018 Jul. 21.
Srch=$(echo $Line | grep -oP '^.*?\\".*?[^\\]"' | sed -e 's/\\/\\\\/g')
echo $Line | sed -e s/${Srch}//
「直前に\(バックスラッシュ)が無い"(二重引用符)まで」の検索
原形 ^.*?\".*?[^\]"
grepに使う時 '^.*?\\".*?[^\\]"'
sedに使う時 '^.*?\\".*?[^\\]"'
sedの検索文字列内での\(バックスラッシュ)
'(シングルクォーテーション)で囲むと
シェルではそのまま読み込まれて
sedにおいて\(バックスラッシュ)が状況に応じてエスケープ文字に解釈される
'(シングルクォーテーション)で囲まないと
シェルで読み込まれる時に\が状況に応じてエスケープ文字に解釈され
sedにおいても\が状況に応じてエスケープ文字に解釈される
\をたくさん書く必要がある
新しい投稿
前の投稿
ホーム
登録:
投稿 (Atom)