English 中文(简体)
- trd 以从字符串中删除字符串的精确字符串
原标题:tr -d to remove an exact string of characters from a string
I am trying to make tr -d remove a string of characters from an existing string, without it removing characters everywhere else. For example, I want tr to remove : OK from the end of every string in foo.txt. Contents of foo.txt: BROKEN BONES: OK Kefen Odvora: OK BOOKS_FOR_MUM: OK E: OK Amded: OK This is the command I run: cat foo.txt | tr -d ": OK$" I want it to output this: BROKEN BONES Kefen Odvora BOOKS_FOR_MUM E: OK Amded But instead I get this, which I don t want: BRENBNES efendvora BS_FR_MUM EAmded How can I fix this?
最佳回答
You are using the wrong tool. You want sed, not tr: cat foo.txt | sed s/: OK$// or preferably sed s/: OK$// foo.txt when your input really is just a file, not a more complicated command. tr -d removes all occurrences of any character found in the argument to -d; it does not treat it as a regular expression to match and remove. Specifically, you are removing all occurrences of :, , O, K, and $ from each line.
问题回答
awk to help here. awk {sub(/: OK$/,"")} 1 Input_file




相关问题
Parse players currently in lobby

I m attempting to write a bash script to parse out the following log file and give me a list of CURRENT players in the room (so ignoring players that left, but including players that may have rejoined)...

encoding of file shell script

How can I check the file encoding in a shell script? I need to know if a file is encoded in utf-8 or iso-8859-1. Thanks

Bash usage of vi or emacs

From a programming standpoint, when you set the bash shell to use vi or emacs via set -o vi or set -o emacs What is actually going on here? I ve been reading a book where it claims the bash shell ...

Dynamically building a command in bash

I am construcing a command in bash dynamically. This works fine: COMMAND="java myclass" ${COMMAND} Now I want to dynamically construct a command that redirectes the output: LOG=">> myfile.log ...

Perform OR on two hash outputs of sha1sum

I want perform sha1sum file1 and sha1sum file2 and perform bitwise OR operation with them using bash. Output should be printable i.e 53a23bc2e24d039 ... (160 bit) How can I do this? I know echo $(( ...

Set screen-title from shellscript

Is it possible to set the Screen Title using a shell script? I thought about something like sending the key commands ctrl+A shift-A Name enter I searched for about an hour on how to emulate ...

热门标签