単語の最後の文字を削除しますが、その文字がある場合にのみ - bash

単語の最後の文字を削除しますが、その文字がある場合にのみ - bash

最後の文字がある場合にのみどのように削除できますか?

入力する:

オープンオフィス.org/m
openOffice.org/ozm
個人の。
Pfg。
フィル。
教授。
それぞれ。
屋根の長さ/メートル
ローン海峡

希望の出力:

オープンオフィス.org
オープンオフィス.org
パース
プルーガー
フィル
教授
回答
ロンステル
ロンスター

これまではドットだけを残しましたが、残念ながら最後のsedコマンドでは文字も削除されましたg$ cat filename | grep "\." | cut -d"/" -f1 | sed 's/.$//'

ベストアンサー1

コマンドのポイントを超えて、sedすべてがうまくいくでしょう。このように:

sed 's/\.$//'

エスケープしないと、.$文字列の末尾にあるすべての文字と一致するためです。

また、sedすべての++を1つに入れることもできます。grepcutsed

sed 's=/[^/]*$==;s/\.$//' filename

おすすめ記事