次のコードがあります。
testval="aaa_bbb_ccc,"
testval+="_ddd"
echo ${testval}
ただし、「後ろにカンマ」を削除する必要があります。ccc${testval}
追加する前は常に最後の文字でした。_ddd文字列に追加のカンマを保持する必要があるかもしれません。
しかし、これまで私は動作しているものが見つかりませんでした。
例えば
testval="aaa_bbb_ccc," ;
testval=${testval} | rev | cut -c 2- | rev ; testval+="_ddd" ;
echo ${testval}
または
testval="aaa_bbb_ccc," ;
testval=${testval} | sed 's/.$//' ; testval+="_ddd" ;
echo ${testval}
どちらも次のようになります。
aaa_bbb_ccc,_ddd
私も次のことを試しました。
testval="aaa_bbb_ccc," ;
testval=$(${testval} | rev | cut -c 2- | rev) ;
testval+="_ddd" ;
echo ${testval}`
そして
testval="aaa_bbb_ccc," ;
testval=$(${testval} | sed 's/.$//') ;
testval+="_ddd" ;
echo ${testval}
どちらも次のようになります。
-su: {testval}: command not found**
rtrim
同等または類似の機能はありませんか?これは最後のものをトリミングします。N文字列/変数の文字
ベストアンサー1
同様の機能に対応する機能やrtrimはありませんか?文字列/変数から最後のn文字を削除します。
ここで:
${parameter%word}
${parameter%%word}
Remove matching suffix pattern.
この%
フォームは最短一致を削除し、%%
最長一致を削除します。対応する「ltrim」はと${parameter#word}
です${parameter##word}
。
例えば
$ testval="aaa_bbb_ccc,"
$ testval=${testval%,}
$ echo ${testval}
aaa_bbb_ccc
あなたの場合
$ testval="aaa_bbb_ccc,"
$ testval=${testval%,}
$ testval+="_ddd"
$ echo ${testval}
aaa_bbb_ccc_ddd
,
これを変更して?
単一の文字を削除したり、???
n = 3つの末尾の文字を変更したりできます。 Bashでシェルオプションが設定されている場合、word
KSHスタイル拡張グローバルモードになることができます。extglob