sedを使用して文字列を変更する方法

sedを使用して文字列を変更する方法

入力文字列である文字列があり、./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ため、これらの入力を正しく処理できません。

おすすめ記事