Sponsored Content
Top Forums Shell Programming and Scripting Removing " from a text using awk Post 302867533 by RavinderSingh13 on Thursday 24th of October 2013 10:50:49 AM
Old 10-24-2013
Quote:
Thanks Jotne

Try... for given input this will work Smilie



Code:
$ awk '{gsub(/[^\\A-Za-z]\"|"$/," ");gsub(/"\, /,",")}1' fileThe quick brown fox jumps,over the 'lazy \"dog\"' here are some more data
OR



Code:
$ awk '{for(i=1;i<=NF;i++)if($i~/^\"|"$/){gsub("\"","",$i);printf $i FS}else{printf $i FS}printf RS }' fileThe quick brown fox jumps, over the 'lazy \"dog\"' here are some more data
Hello Akshay,

Could you please explain both the codes a bit please.



Thanks,
R. Singh
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

Removing " " chars using Awk

HI Friends, I am trying to elliminate the " " characters from the word: "hello" using awk. I need the output to be just = hello (without " " chars). Is there any way to do this ? Thanks! (3 Replies)
Discussion started by: vijaya2006
3 Replies

3. Shell Programming and Scripting

removing the "\" and "\n" character using sed or tr

Hi All, I'm trying to write a ksh script to parse a file. When the "\" character is encountered, it should be removed and the next line should be concatenated with the current line. For example... this is a test line #1\ should be concatenated with line #2\ and line number 3 when this... (3 Replies)
Discussion started by: newbie_coder
3 Replies

4. Shell Programming and Scripting

Extract text between two specified "constant" texts using awk

Hi All, From the title you may know that this question has been asked several times and I have done lot of Googling on this. I have a Wikipedia dump file in XML format. All the contents are in one XML file i.e. all different topics have been put in one XML file. Now I need to separate them and... (1 Reply)
Discussion started by: shoaibjameel123
1 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. Shell Programming and Scripting

Removing "^M" from the end of a String (i.e. "Ctrl+M")?

Hello All, I have an Expect script that ssh's to a remote server and runs some commands before exiting. One of the commands I run is the "hostname" Command. After I run this command I save the output using this line in the code below... Basically it executes the hostname command, then I... (2 Replies)
Discussion started by: mrm5102
2 Replies

7. Shell Programming and Scripting

Difference between /text/ and "text" in awk

Why does this search give different result in awk I do see a mix of this in the example around the net. What to use and why? data 1 = red 2 = green 3 = blue 4 = black awk '$3 == /blue/' data "no result" awk '$3 == "blue"' data 3 = blue awk '$3 ~ /blue/' data 3 = blue (9 Replies)
Discussion started by: Jotne
9 Replies

8. UNIX for Dummies Questions & Answers

Removing PATTERN from txt without removing lines and general text formatting

Hi Everybody! First post! Totally noobie. I'm using the terminal to read a poorly formatted book. The text file contains, in the middle of paragraphs, hyphenation to split words that are supposed to be on multiple pages. It looks ve -- ry much like this. I was hoping to use grep -v " -- "... (5 Replies)
Discussion started by: AxeHandle
5 Replies

9. Shell Programming and Scripting

awk - help in removing some text

Hey Guys, Earlier I asked a question under Solaris, which I got great help... thanks. Although I got the script working for what it really needed to do, I am looking for a bit of help to change the output for nicer reading. my script gets a list of zones under a global-zone and puts this... (4 Replies)
Discussion started by: dakelly
4 Replies

10. UNIX for Beginners Questions & Answers

Awk: Performing "for" loop within text block with two files

I am hoping to pull multiple strings from one file and use them to search within a block of text within another file. File 1PS001,001 HLK PS002,004 MWQ PS004,002 RXM PS004,006 DBX PS004,006 SBR PS005,007 ML PS005,009 DBR PS005,011 MR PS005,012 SBR PS006,003 RXM PS006,003 >SJ PS006,010... (11 Replies)
Discussion started by: jvoot
11 Replies
PREG_REPLACE(3) 							 1							   PREG_REPLACE(3)

preg_replace - Perform a regular expression search and replace

SYNOPSIS
mixed preg_replace (mixed $pattern, mixed $replacement, mixed $subject, [int $limit = -1], [int &$count]) DESCRIPTION
Searches $subject for matches to $pattern and replaces them with $replacement. PARAMETERS
o $pattern - The pattern to search for. It can be either a string or an array with strings. Several PCRE modifiers are also available. o $replacement - The string or an array with strings to replace. If this parameter is a string and the $pattern parameter is an array, all pat- terns will be replaced by that string. If both $pattern and $replacement parameters are arrays, each $pattern will be replaced by the $replacement counterpart. If there are fewer elements in the $replacement array than in the $pattern array, any extra $pat- terns will be replaced by an empty string. $replacement may contain references of the form \ n or (since PHP 4.0.4) $ n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern. To use backslash in replacement, it must be doubled ( "\\" PHP string). When working with a replacement pattern where a backreference is immediately followed by another number (i.e.: placing a literal number immediately after a matched pattern), you cannot use the familiar \1 notation for your backrefer- ence. \11, for example, would confuse preg_replace(3) since it does not know whether you want the \1 backreference followed by a literal 1, or the \11 backreference followed by nothing. In this case the solution is to use ${1}1. This creates an isolated $1 backreference, leaving the 1 as a literal. When using the deprecated e modifier, this function escapes some characters (namely ', ", and NULL) in the strings that replace the backreferences. This is done to ensure that no syntax errors arise from backref- erence usage with either single or double quotes (e.g. 'strlen('$1')+strlen("$2")'). Make sure you are aware of PHP's string syntax to know exactly how the interpreted string will look. o $subject - The string or an array with strings to search and replace. If $subject is an array, then the search and replace is performed on every entry of $subject, and the return value is an array as well. o $limit - The maximum possible replacements for each pattern in each $subject string. Defaults to -1 (no limit). o $count - If specified, this variable will be filled with the number of replacements done. RETURN VALUES
preg_replace(3) returns an array if the $subject parameter is an array, or a string otherwise. If matches are found, the new $subject will be returned, otherwise $subject will be returned unchanged or NULL if an error occurred. ERRORS
/EXCEPTIONS As of PHP 5.5.0 E_DEPRECATED level error is emitted when passing in the "e" modifier. As of PHP 7.0.0 E_WARNING is emited in this case and "e" modifier has no effect. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 7.0.0 | | | | | | | Support for the /e modifier has been removed. | | | Use preg_replace_callback(3) instead. | | | | | 5.5.0 | | | | | | | The /e modifier is deprecated. Use | | | preg_replace_callback(3) instead. See the | | | PREG_REPLACE_EVAL documentation for additional | | | information about security risks. | | | | | 5.1.0 | | | | | | | Added the $count parameter | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 Using backreferences followed by numeric literals <?php $string = 'April 15, 2003'; $pattern = '/(w+) (d+), (d+)/i'; $replacement = '${1}1,$3'; echo preg_replace($pattern, $replacement, $string); ?> The above example will output: April1,2003 Example #2 Using indexed arrays with preg_replace(3) <?php $string = 'The quick brown fox jumped over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?> The above example will output: The bear black slow jumped over the lazy dog. By ksorting patterns and replacements, we should get what we wanted. <?php ksort($patterns); ksort($replacements); echo preg_replace($patterns, $replacements, $string); ?> The above example will output: The slow black bear jumped over the lazy dog. Example #3 Replacing several values <?php $patterns = array ('/(19|20)(d{2})-(d{1,2})-(d{1,2})/', '/^s*{(w+)}s*=/'); $replace = array ('3/4/12', '$1 ='); echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); ?> The above example will output: $startDate = 5/27/1999 Example #4 Strip whitespace This example strips excess whitespace from a string. <?php $str = 'foo o'; $str = preg_replace('/ss+/', ' ', $str); // This will be 'foo o' now echo $str; ?> Example #5 Using the $count parameter <?php $count = 0; echo preg_replace(array('/d/', '/s/'), '*', 'xp 4 to', -1 , $count); echo $count; //3 ?> The above example will output: xp***to 3 NOTES
Note When using arrays with $pattern and $replacement, the keys are processed in the order they appear in the array. This is not neces- sarily the same as the numerical index order. If you use indexes to identify which $pattern should be replaced by which $replace- ment, you should perform a ksort(3) on each array prior to calling preg_replace(3). SEE ALSO
PCRE Patterns, preg_quote(3), preg_filter(3), preg_match(3), preg_replace_callback(3), preg_split(3), preg_last_error(3). PHP Documentation Group PREG_REPLACE(3)
All times are GMT -4. The time now is 07:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy