入力文字列である文字列があり、./y1563/y1563.xls
それを文字列出力に変換したいと思いますy1563/y1563.txt
。
ベストアンサー1
通常、sed
既存の文字列(ご意見に基づいて)シェル変数にあります。少なくとも文字列のサフィックスを削除および/または置き換える場合はそうではありません。
代わりに、
NAME=./y1563/y1563.xls
NAME=${NAME%.xls}.txt # remove .xls suffix, append .txt suffix
NAME=${NAME#./} # remove ./ prefix (this may not be needed)
これら(${variable%pattern}
と${variable#pattern}
)は標準変数の置換変数値からサフィックスとプレフィックス文字列を削除します。
$NAME
値に改行文字が含まれていてもうまく機能します。ファイル名には改行が許可されていますが、エディタは行中心であるsed
ため、これらの入力を正しく処理できません。