Sponsored Content
Top Forums Shell Programming and Scripting Grep problem from The Unix Programming Environment Post 302653301 by methyl on Friday 8th of June 2012 03:58:41 PM
Old 06-08-2012
Please post sample data (very important that the data includes lines containing one or more dollar character and some lines with various numbers of backslash characters) , the commands you typed, the results and any comments about what happened. I really like the idea of using the example grep lines as sample data because they seem to contain every variant.
While doing this task you will probably understand the basic concepts.

Please mention what Operating System and version you are running and what Shell you use. I can't imagine that it will be the original Bourne Shell (but it might be).

In unix fundamental commands, the dollar sign can mean the end of the line. When not escaped it introduces an Environment Variable. When double-quoted and escaped "\$" it becomes just a dollar character. When single-quoted it is just a dollar character '$' because single quotes disable parameter substitution. This example appears to be about teaching the fundamentals. If you use grep to look for end-of-line characters in a normal unix text file the output will be every line.


Quote:
The first command for example, prints all lines, which I don't understand - so I suppose I must be missing on basics
In the first example the grep is looking for end-of-line characters in a text file (i.e. line-feed characters) which are abbreviated to a dollar sign in much unix syntax. The dollar sign has been escaped with a backslash to stop it being interpreted by Shell as an introduction to an Environment Variable.

Last edited by methyl; 06-08-2012 at 05:18 PM.. Reason: multiple revisions and corrections
This User Gave Thanks to methyl For This Post:
 

9 More Discussions You Might Find Interesting

1. Post Here to Contact Site Administrators and Moderators

Java Programming in UNIX Environment

A suggetion: Don't we need to start Java Programming in UNIX Environment Forum ? (1 Reply)
Discussion started by: cub
1 Replies

2. Shell Programming and Scripting

programming for unix environment

i have to make a menu based program to allow iusers to select the system information about their machine that they want. All i have been taught is how to enter commands at the command prompt like simple commands such as pwd and cd directory to change directory (not even sure if that is right). But... (1 Reply)
Discussion started by: carlvernon
1 Replies

3. Shell Programming and Scripting

Unix Systems Programming Vs Unix Programming

Several months ago I found a link that explained the difference between how a Unix Systems Admin would do scripting compared to what a Unix Programmer would do. It showed a basic script and then show several iterations that explained how the Systems Admin would change it to make it better. I was... (0 Replies)
Discussion started by: BCarlson
0 Replies

4. Programming

New to C Programming in UNIX environment

Hi all, I know the basics of C programming, but I dont know a single thing about how to write, compile and run C code in UNIX, also where liberaris are stored, how .headers files are being managed in unix, how to debug c code and what are the available GNU tools for c programming in linux env,... (6 Replies)
Discussion started by: patras
6 Replies

5. UNIX for Dummies Questions & Answers

Carreer:Networking Programming in Unix (C programming Language)

Hello, I am trying to learn Networking Programming in C in unix enviorment. I want to know how good it is to become a network programmer. i am crazy about Network programming but i also want to opt for the best carreer options. Anybody experienced Network Programmer, please tell me is my... (5 Replies)
Discussion started by: vibhory2j
5 Replies

6. UNIX for Dummies Questions & Answers

How does unix system administration, unix programming, unix network programming differ?

How does unix system administration, unix programming, unix network programming differ? Please help. (0 Replies)
Discussion started by: thulasidharan2k
0 Replies

7. Programming

UNIX Network Programming making files problem

I have started reading the book Unix Network Programming, Volume 1: The Sockets Networking API. I downloaded all the source code and the readme says I must make the files. zuro@zuro:~/book/unpv12e$ cd lib zuro@zuro:~/book/unpv12e/lib$ make gcc -g -O2 -D_REENTRANT -Wall -c -o... (5 Replies)
Discussion started by: xuro
5 Replies

8. Programming

UNIX network programming execution problem

I have started reading the book Unix Network Programming, Volume 1: The Sockets Networking API. I downloaded all the source code and performed all the steps present in README file.Now when i compile my first program it give the following error. sainandan@nandan:~/unpv13e/intro$ ./daytimetcpcli... (1 Reply)
Discussion started by: bsainandan
1 Replies

9. UNIX for Beginners Questions & Answers

Using grep to find C programming definition

Let's say I have a file written in C programming ... int function A (Param1, Param2) { .... } How to grep this function? I tried grep -ER '^functionA(.*)/n{' filename > result.txt Not work :mad: Please use CODE tags on all sample input, output, and code segments; not just on shell... (4 Replies)
Discussion started by: cmdcmd
4 Replies
Tcl(n)							       Tcl Built-In Commands							    Tcl(n)

__________________________________________________________________________________________________________________________________________________

NAME
Tcl - Summary of Tcl language syntax. _________________________________________________________________ DESCRIPTION
The following rules define the syntax and semantics of the Tcl language: [1] A Tcl script is a string containing one or more commands. Semi-colons and newlines are command separators unless quoted as described below. Close brackets are command terminators during command substitution (see below) unless quoted. [2] A command is evaluated in two steps. First, the Tcl interpreter breaks the command into words and performs substitutions as described below. These substitutions are performed in the same way for all commands. The first word is used to locate a command procedure to carry out the command, then all of the words of the command are passed to the command procedure. The command procedure is free to interpret each of its words in any way it likes, such as an integer, variable name, list, or Tcl script. Different com- mands interpret their words differently. [3] Words of a command are separated by white space (except for newlines, which are command separators). [4] If the first character of a word is double-quote (``"'') then the word is terminated by the next double-quote character. If semi- colons, close brackets, or white space characters (including newlines) appear between the quotes then they are treated as ordinary characters and included in the word. Command substitution, variable substitution, and backslash substitution are performed on the characters between the quotes as described below. The double-quotes are not retained as part of the word. [5] If the first character of a word is an open brace (``{'') then the word is terminated by the matching close brace (``}''). Braces nest within the word: for each additional open brace there must be an additional close brace (however, if an open brace or close brace within the word is quoted with a backslash then it is not counted in locating the matching close brace). No substitutions are performed on the characters between the braces except for backslash-newline substitutions described below, nor do semi-colons, new- lines, close brackets, or white space receive any special interpretation. The word will consist of exactly the characters between the outer braces, not including the braces themselves. [6] If a word contains an open bracket (``['') then Tcl performs command substitution. To do this it invokes the Tcl interpreter recur- sively to process the characters following the open bracket as a Tcl script. The script may contain any number of commands and must be terminated by a close bracket (``]''). The result of the script (i.e. the result of its last command) is substituted into the word in place of the brackets and all of the characters between them. There may be any number of command substitutions in a single word. Command substitution is not performed on words enclosed in braces. [7] If a word contains a dollar-sign (``$'') then Tcl performs variable substitution: the dollar-sign and the following characters are replaced in the word by the value of a variable. Variable substitution may take any of the following forms: $name Name is the name of a scalar variable; the name is terminated by any character that isn't a letter, digit, or under- score. $name(index) Name gives the name of an array variable and index gives the name of an element within that array. Name must contain only letters, digits, and underscores. Command substitutions, variable substitutions, and backslash substitutions are performed on the characters of index. ${name} Name is the name of a scalar variable. It may contain any characters whatsoever except for close braces. There may be any number of variable substitutions in a single word. Variable substitution is not performed on words enclosed in braces. [8] If a backslash (``'') appears within a word then backslash substitution occurs. In all cases but those described below the back- slash is dropped and the following character is treated as an ordinary character and included in the word. This allows characters such as double quotes, close brackets, and dollar signs to be included in words without triggering special processing. The follow- ing table lists the backslash sequences that are handled specially, along with the value that replaces each sequence. a Audible alert (bell) (0x7).  Backspace (0x8). f Form feed (0xc). Newline (0xa). Carriage-return (0xd). Tab (0x9). v Vertical tab (0xb). <newline>whiteSpace A single space character replaces the backslash, newline, and all spaces and tabs after the newline. This backslash sequence is unique in that it is replaced in a separate pre-pass before the command is actually parsed. This means that it will be replaced even when it occurs between braces, and the resulting space will be treated as a word separator if it isn't in braces or quotes. \ Backslash (``''). ooo | The digits ooo (one, two, or three of them) give an eight-bit octal value for the Unicode character that will be inserted. | The upper bits of the Unicode character will be 0. | xhh | The hexadecimal digits hh give an eight-bit hexadecimal value for the Unicode character that will be inserted. Any number of | hexadecimal digits may be present; however, all but the last two are ignored (the result is always a one-byte quantity). The | upper bits of the Unicode character will be 0. | uhhhh | The hexadecimal digits hhhh (one, two, three, or four of them) give a sixteen-bit hexadecimal value for the Unicode character | that will be inserted. Backslash substitution is not performed on words enclosed in braces, except for backslash-newline as described above. [9] If a hash character (``#'') appears at a point where Tcl is expecting the first character of the first word of a command, then the hash character and the characters that follow it, up through the next newline, are treated as a comment and ignored. The comment character only has significance when it appears at the beginning of a command. [10] Each character is processed exactly once by the Tcl interpreter as part of creating the words of a command. For example, if vari- able substitution occurs then no further substitutions are performed on the value of the variable; the value is inserted into the word verbatim. If command substitution occurs then the nested command is processed entirely by the recursive call to the Tcl inter- preter; no substitutions are performed before making the recursive call and no additional substitutions are performed on the result of the nested script. [11] Substitutions do not affect the word boundaries of a command. For example, during variable substitution the entire value of the variable becomes part of a single word, even if the variable's value contains spaces. Tcl 8.1 Tcl(n)
All times are GMT -4. The time now is 12:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy