I spent some time trying to get into awk. So, here is my solution:
There's a small flaw in it, though, due to the fact that the input field delimiter (FS) is a regular expression instead of a static string/character. Unfortunately, I didn't find a way to "preserve" the actual input delimiter for output (OFS) but had to set it to a static (whitespace) character.
Maybe one of you guys knows a way how to achieve this.
Skysmart, you have to be more precise about what is your definition for "airplane alone".
Given this definition, it should be feasible to do the replacement with sed alone, no pun intended.
Usually the definition for "word" is: a sequence of alfanumeric characters surrounded by punctuation characters or by the start/end of the line.
Usually the definition for alfanumeric is: 0,1,...9,a,b,...z,A,B,...Z,_
Usually the definition for punctuation is: any non alfanumeric character.
I understand that you assume that the character "-" is not punctuation.
Is there any other character that you deem not punctuation?
Tested with GNU sed version 4.1.5.
-r is to make sed understand extended regular expression syntax.
^ stands for the start of the line and $ stands for the end of the line; they are "anchors" and do not represent a character.
| is the alternating operator, that is multiple choices.
[] is a class of characters; this expression represents a single character; [^...] is the class of characters that are not in the class [...].
\1 and \2 are backreferences and they are required to keep the characters surrounding the airplane.
...
you see what i'm saying? I dont want the code to touch anything in the file that isn't "airplane", alone. all i want is to replace places were the airplane stands alone.
thanks you so much for your suggestions
If I correctly understand the OP's request, here goes another way with perl,
In my test file, highlighted words contain the required pattern, but only those surrounded by whitespace, or that are found at the start or end of the record (in bold) are to be replaced:
Output:
Tested with perl v5.10.0 (Linux) and v5.8.4 (Solaris 10).
more data.txt
i need this exacted from data.txt
This is the command i tried
sed -n "/Start_of_DISK_info:\/u/,/End_of_DISK_info:\/u/p" data.txtBut, unfortunately it does not do an exact match. Instead, it prints text between both these strings /u & /u/tmp like below.
i need this... (6 Replies)
I have 3-column tab separated data that looks like the following:
act of+n-a-large+vn-tell-v 0.067427
act_com of+n+n-a-large-manufacturer-n 0.129922
act-act_com-com in+n-j+vn-pass-aux-restate-v 0.364499666667
com nmod+n-j+ns-invader-n 0.527521
act_com-com obj+n-a-j+vd-contribute-v 0.091413... (2 Replies)
Im stumped on this one. Id like to echo into a .txt file all names for an xml feed in a huge folder. Can that be done?? Id need to echo <name>This name</name> in client.xml files.
$path="/mnt/windows/path"
echo 'recording names'
cd "$path"
for names in $path
than Im stuck on... (2 Replies)
QUESTION1:
How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed.
Contents of car.txt
CAR1_KEY0
CAR1_KEY1
CAR2_KEY0
CAR2_KEY1
CAR1_KEY10
CURRENT COMMAND LINE: WHERE VARIABLE CAR_NUMBER=1 AND KEY_NUMBER=1
grep... (1 Reply)
I've got this command that I've been using to find strings on the same line, say I'm doing a search for name:
find . -name "*" | xargs grep -i "Doe" | grep -i "John" > output.txt
This gives me every line in a file that has John and Doe in it. I'm looking to add a OR operator for the second... (5 Replies)
Trying to find a way to grep for two names on a line. Both names must appear on the same line so '|' / OR is out.
So far, I'm just messing around and I've got
find . -name "*" | xargs grep "Smith"
Let me explain. I'm at a top level and need to know all the names of the files that... (6 Replies)
I am having a heck of a time trying to write a script that will grep for multiple strings in a single file. I am really at my wits end here and I am hoping to get some feedback here.
Basic information:
OS: Solaris 9
Shell: KSH
Oracle Database server
I was trying to grep through a file... (5 Replies)
Hello.
I have a dir of 1500+ dir. In these dirs is a file host, with a tag <x_tag>.
I need to :
1. grep for all dir that contain this host file that contain <x_tag>
2. print a list of these host files containing <x_tag>
is this better to egrep this? (5 Replies)