Sponsored Content
Top Forums UNIX for Beginners Questions & Answers How to manipulate a text file and store each version for every changes in a directory? Post 303035060 by RudiC on Monday 13th of May 2019 08:35:29 AM
Old 05-13-2019
Welcome to the forum.


I'm not sure I fully understand what you're after; some sample output file might help. But - why that complicated? You're using awk anyhow, so why not


Code:
$ awk -vMUL=$multiplier '/r[0-9]*f/ {RF = $1} /^\+/ {printf "%s\t%+7.6E\t%s\t%+7.6E\n", RF, $1*MUL, $2, $3*MUL}'  /tmp/Prob01.txt 
r1f:O2+2PD=>2O-PD	+5.250000E-02	+0.000000E00	+0.000000E+00
r2f:C3H6+2PD=>C3H6-PD	+7.350000E-01	+0.000000E00	+0.000000E+00
r3f:C3H6+O-PD+PD=>C3H5-PD+OH-PD	+2.060489E-01	+0.000000E00	+0.000000E+00
r4f:H2+2PD=>2H-PD	+3.450000E-02	+0.000000E00	+0.000000E+00
r5f:H2O+PD=>H2O-PD	+1.869339E-01	+0.000000E00	+0.000000E+00
r6f:CO2+PD=>CO2-PD	+3.750000E-03	+0.000000E00	+0.000000E+00

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Store text file into a datastructure using Shell script

i have a text file and want to store it in a appropriate data structure (2-d is preferable) . The contents are as follows.. plzzz suggest an appropriate way to store the contents by using shell scripting (bash shell) text file Abc Def Ghi Hjk Lmn Opq Rst Uvw .... ..... .... .... ....... (3 Replies)
Discussion started by: cynosure2009
3 Replies

2. Shell Programming and Scripting

Parse text file in shell & store to variable

Hi, I need to parse a simple text file like below and store the word that starts with BR* to a variable say $BRno. I need to do this in sh script. NOTE: the length of the numbers following BR is in constant. And there is only 1 BRXXX in a file at a given time. .txt file: BR276828... (1 Reply)
Discussion started by: script2010
1 Replies

3. UNIX for Dummies Questions & Answers

Question on how to manipulate a SIMPLE text file (using awk?)

I have a simple txt files that looks something like this (The title is a part of the text file) Student Grades --------------- 1 Tim Purser 89 2 John Wayne 56 3 Jenn Hawkins 95 4 Harry Potter 75 Here are my questions: How would I ONLY print the names of students... (2 Replies)
Discussion started by: ninjagod123
2 Replies

4. UNIX for Dummies Questions & Answers

Writing a loop to manipulate a script and store it in multiple output files

I have a script where the the 9th line looks like this: $filename=sprintf("250.1chr%d.ped", $N); I want to modify this script 1000 times, changing 250.1chr%d.ped to 250.2chr%d.ped, 250.3chr%.ped.......and so on all the way to 250.1000chr%d.ped and store each output in files called ... (4 Replies)
Discussion started by: evelibertine
4 Replies

5. Shell Programming and Scripting

Copy a file from directroy/ prior version to the directory/ new version

How to copy a file from directroy/ prior version to the directory/ new version automatically. (4 Replies)
Discussion started by: roy1912
4 Replies

6. Shell Programming and Scripting

Hit multiple URL from a text file and store result in other test file

Hi, I have a problem where i have to hit multiple URL that are stored in a text file (input.txt) and save their output in different text file (output.txt) somewhat like : cat input.txt http://192.168.21.20:8080/PPUPS/international?NUmber=917875446856... (3 Replies)
Discussion started by: mukulverma2408
3 Replies

7. Shell Programming and Scripting

How to take the filenames from a directory and store into a file??

hi, how can i take the file names from a directory and store only the filenames in the file. suppose i have a directory which contains the following files and subdirectories. $ ls -ltr total 16 -rw-rw-r-- 1 adm etc 4 Aug 6 20:37 s1.txt -rw-rw-r-- 1 adm etc 4 Aug 6 20:37 s2.txt... (11 Replies)
Discussion started by: Little
11 Replies

8. Shell Programming and Scripting

Manipulate the text file in UNIX

Hi All, I have a file like below and i have 2 questions on this (They are 3 lines starts with 01 , 02 and 03. but is 01abc333644554 234 2334535 34534535355353 sfsdf345455 353 4543 jgkg tty 7676 02cdesdfsdfsdf 234 wesdfsdf 345345 234234 234234 2342342 dfgdfg sdfgg dgdgdg fgvfs... (6 Replies)
Discussion started by: siva.pitchai
6 Replies

9. Shell Programming and Scripting

A better way to manipulate text

Good morning everyone, I'm currently trying to convert an environment variable into a string and then attach it at the end of a command and launch it. I have the following right now, but it's very ugly: AMI_TAGS="env=test,country=XX,city=blah,galaxy=blahblah" aws ec2 create-tags... (8 Replies)
Discussion started by: da1
8 Replies

10. UNIX for Beginners Questions & Answers

Manipulate condition to send mail based on output text in file

Hi All, I have a working script as below. echo "Files loaded with $(cat /var/tmp/script.X1.out)" | mail -s "Files loaded with return code" mailid This script takes the output from script.X1.out file and appends the text "Files loaded with return code" and sends the email. Now what I want... (5 Replies)
Discussion started by: midhun3108
5 Replies
GROK(1) 																   GROK(1)

NAME
grok - parse logs, handle events, and make your unstructured text structured. SYNOPSIS
grok [-d] -f configfile DESCRIPTION
Grok is software that allows you to easily parse logs and other files. With grok, you can turn unstructured log and event data into structured data. The grok program is a great tool for parsing log data and program output. You can match any number of complex patterns on any number of inputs (processes and files) and have custom reactions. OPTIONS
-d or --daemon Daemonize after parsing the config file. Implemented with daemon(3). The default is to stay in foreground. -f configfile Specify a grok config file to use. CONFIGURATION
You can call the config file anything you want. A full example config follows below, with documentation on options and defaults. # --- Begin sample grok config # This is a comment. :) # # enable or disable debugging. Debug is set false by default. # the 'debug' setting is valid at every level. # debug values are copied down-scope unless overridden. debug: true # you can define multiple program blocks in a config file. # a program is just a collection of inputs (files, execs) and # matches (patterns and reactions), program { debug: false # file with no block. settings block is optional file "/var/log/messages" # file with a block file "/var/log/secure" { # follow means to follow a file like 'tail -F' but starts # reading at the beginning of the file. A file is followed # through truncation, log rotation, and append. follow: true } # execute a command, settings block is optional exec "netstat -rn" # exec with a block exec "ping -c 1 www.google.com" { # automatically rerun the exec if it exits, as soon as it exits. # default is false restart-on-exit: false # minimum amount of time from one start to the next start, if we # are restarting. Default is no minimum minimum-restart-interval: 5 # run every N seconds, but only if the process has exited. # default is not to rerun at all. run-interval: 60 # default is to read process output only from stdout. # set this to true to also read from stderr. read-stderr: false } # You can have multiple match {} blocks in your config. # They are applied, in order, against every line of input that # comes from your exec and file instances in this program block. match { # match a pattern. This can be any regexp and can include %{foo} # grok patterns pattern: "some pattern to match" # You can have multiple patterns here, any are valid for matching. pattern: "another pattern to match" # the default reaction is "%{@LINE}" which is the full line # matched. the reaction can be a special value of 'none' which # means no reaction occurs, or it can be any string. The # reaction is emitted to the shell if it is not none. reaction: "%{@LINE}" # the default shell is 'stdout' which means reactions are # printed directly to standard output. Setting the shell to a # command string will run that command and pipe reaction data to # it. #shell: stdout shell: "/bin/sh" # flush after every write to the shell. # The default is not to flush. flush: true # break-if-match means do not attempt any further matches on # this line. the default is false. break-if-match: true } } # -- End config PATTERN FILES
Pattern files contain lists of names and patterns for loading into grok. Patterns are newline-delimited and have this syntax: patternname expression Any whitespace between the patternname and expression are ignored. patternname This is the name of your pattern which, when loaded, can be referenced in patterns as %{patternname} expression The expression here is, verbatim, available as a regular expression. You do not need to worry about how to escape things. PATTERN EXAMPLES DIGITS d+ HELLOWORLD hello world REGULAR EXPRESSIONS
The expression engine underneath grok is PCRE. Any syntax in PCRE is valid in grok. REACTIONS
Reactions can reference named patterns from the match. You can also access a few other special values, including: %{@LINE} The line matched. %{@MATCH} The substring matched %{@START} The starting position of the match from the beginning of the string. %{@END} The ending position of the match. %{@LENGTH} The length of the match %{@JSON} The full set of patterns captured, encoded as a json dictionary as a structure of { pattern: [ array of captures ] }. We use an array becuase you can use the same named pattern multiple times in a match. %{@JSON_COMPLEX} Similar to the above, but includes start and end position for every named pattern. That structure is: { "grok": [ { "@LINE": { "start": ..., "end": ..., "value": ... } }, { "@MATCH": { "start": ..., "end": ..., "value": ... } }, { "patternname": { "start": startpos, "end": endpos, "value": "string" } }, { "patternname2": { "start": startpos, "end": endpos, "value": "string" } }, ... ] } REACTION FILTERS Reaction filters allow you to mutate the captured data. The following filters are available: An example of using a filter in a reaction is like this: reaction: "echo Matched: %{@MATCH|shellescape}" shellescape Escapes all characters necessary to make the string safe in non-quoted a shell argument shelldqescape Escapes characters necessary to be safe within doublequotes in a shell. jsonencode Makes the string safe to represent in a json string (escapes according to json.org recommendations) SEE ALSO
pcre(3), pcresyntax(3), Sample grok configs are available in in the grok samples/ directory. Project site: <http://semicomplete.googlecode.com/wiki/Grok> Google Code: <http://semicomplete.googlecode.com/> Issue/Bug Tracker: <http://code.google.com/p/semicomplete/issues/list> CONTACT
Please send questions to grok-users@googlegroups.com. File bugs and feature requests at the following URL: Issue/Bug Tracker: <http://code.google.com/p/semicomplete/issues/list> HISTORY
grok was originally in perl, then rewritten in C++ and Xpressive (regex), then rewritten in C and PCRE. AUTHOR
grok was written by Jordan Sissel. 2009-12-25 GROK(1)
All times are GMT -4. The time now is 02:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy