AWKまたはCUTを使用して各行の最後の単語を削除する方法

AWKまたはCUTを使用して各行の最後の単語を削除する方法
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin/java.exe
ACRBAMIDKC124,/Program Files/Java/jre6/bin/java.exe
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin/java.exe

そして私たちが望む予想結果

ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

ベストアンサー1

$ sed 's,/[^/]*$,,' file
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

これにより、各行の最後の文字の後のすべての内容がsed削除されます。/

正規表現は、/[^/]*$行末のスラッシュの後に非スラッシュ文字が続くものと一致し、置換はこれらの文字を削除します(何も置き換えません)。

同じものawk

awk '{ sub("/[^/]*$", ""); print }' file

cut切り取る固定区切り文字がないため、ここでユーティリティを使用するのは厄介です。あなたは明らかにすることができますキャンセル各行はrevで始まり抽出され、逆の順序で抽出されますが、両方の行が同じ操作をよりきれいに実行できるため、/作業が多すぎるようです。sedawk

$ rev file | cut -d '/' -f 2- | rev
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

おすすめ記事