Sponsored Content
Top Forums Shell Programming and Scripting sed: How to modify files in a complex way Post 302377546 by quirkasaurus on Friday 4th of December 2009 09:55:24 AM
Old 12-04-2009
hope you don't mind a ksh solution:

Code:
num=0
sed -e 's/|/ /g' << EOF |
xy=CreateDB|head.queue|head.source|head.definition|rtf.edit|rtf.task|rft.cut
abc|source|divine|line4|5|true
EOF
while read crud ; do

  (( num +=1 ))

  if [[ $num -eq 1 ]]; then
    set -A col `echo $crud`
    continue
  fi

  ### set -A data `echo $crud` ### this second array not necessary.

  a=1

  ### for datum in `echo ${data[*]}` ; do
  for datum in $crud ; do

    echo ${col[$a]}=$datum
    (( a += 1 ))

  done

done 2>&1 |
  tee $0.log

works for a dynamic number of columns.
Did you notice that your first column is extra?

The only problem I see with this is if you have embedded spaces elsewhere in your data.
In that case, you may have to toggle your IFS variable.

IFS="|"

IFS=" "

depending on where you're at in the script.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Complex Sed/Awk Question?

Hello, So i have this file called /apps/turnout which looks like that of the contents of the /etc/shadow (but not exactly) the file has a long list in it. basically, the contents of this file looks something similar to the following: jajajajalala:D#$#AFVAdfda lalabavisof:#%R@fafla#$... (3 Replies)
Discussion started by: SkySmart
3 Replies

2. Shell Programming and Scripting

Complex sed replacement

Hi, I have a file that I would like to translate using sed. I can do some basic sed commands, but Im afraid this level is beyond me. I have this file - ...alter... .. ...65536... ... ...65536... ... ...alter... ... ...65536... etc What I would like to do is replace the first... (11 Replies)
Discussion started by: one_ring99
11 Replies

3. Shell Programming and Scripting

Complex find grep or sed command

Haven't worked in bash for ages. did a good bit of shell scripting in regular sh, but have forgotten most of it. I have several thousand php files that now include the following line at the end of the file. There is no LF or CR/LF before it begins, it is just concatenated to the final line of... (3 Replies)
Discussion started by: sjburden
3 Replies

4. Shell Programming and Scripting

Double Spacing complex sed pipeline

my script: FILE="$1" echo "You Entered $FILE" if ; then tmp=$(cat $FILE | sed '/./!d' | sed -n '/regex/,/regex/{/regex/d;p}'| sed -n '/---/,+2!p' | sed -n '/#/!p' | sed 's/^*//' | sed -e\ s/*:// | sed -n '/==> /!p' | sed -n '/--> /!p' | sed -n '/regex/,+1!p' | sed -n '/======/!p' | sed -n... (1 Reply)
Discussion started by: omgsomuchppl
1 Replies

5. Shell Programming and Scripting

SED complex string replacement

sed -i 's:"ps -ef | grep $(cat $PID_FILE) | grep -v grep":"ps -C java -o pid,cmd | grep ${SERVER_NAME} | cut -d' ' -f1 | grep -v grep":g' scriptName That's what I'm attempting to do. I'm attempting to replace this: ps -ef | grep $(cat $PID_FILE) | grep -v grep with this: ps -C java -o... (5 Replies)
Discussion started by: cbo0485
5 Replies

6. Programming

Need to modify contents of file with complex patterns.

hi, my fstab file content is like this along with some other lines: /dev/vg0/var1 /var1 ext3 defaults 0 2 /dev/vg0/flx1 /flx1 ext3 defaults 0 2 /dev/vg0/var /var ext3 defaults 0 1 /dev/vg0/flx /flx ext3 defaults 0 2 I want to remove lines with /dev/vg0/var and... (5 Replies)
Discussion started by: success
5 Replies

7. Shell Programming and Scripting

A complex sed statement

I have following requirement. Say, my text file contains following patterns {2010501005|XXGpvertex|9|0|17|0|{|{30100001|XXparameter_set|@@@@{{30001002|XXparameter|!prototype_path|$AB_COMPONENTS/Sort/Sort.mpc|3|2|Pf$|@{0|}} }}@0|@315000|78500|335000|99000|114000|87000|17|And the Sort|Ab... (8 Replies)
Discussion started by: Shell_Learner
8 Replies

8. Shell Programming and Scripting

Modify sed script

I'm trying to take out strings from log files and add them to a csv. For example, in the directory now, there are 2 log files. I get the following results: sed -e '/custodian/b' -e '/packaged by/b' -e '/package name/b' -e '/Total Data (MB) Read/b' -e '/Begin Time/b' -e d * packaged by =... (10 Replies)
Discussion started by: chipperuga
10 Replies

9. Shell Programming and Scripting

Complex string operation (awk, sed, other?)

I have a file that contains RewriteRules for 200 countries (2 examples for 1 country below): RewriteRule ^/at(/|/index.html|)$ http://%{HTTP_HOST}/locate/index.html?locale=de_AT #& RewriteRule ^/at_english(/|/index.html|)$ http://%{HTTP_HOST}/locate/index.html?locale=en_AT I have... (5 Replies)
Discussion started by: usshadowop
5 Replies

10. Shell Programming and Scripting

Complex Filter using grep, awk or sed

Hi, I'm not very familiar witrh sed or awk and hope the somebody can help me to solve my problem. I need to filter a text report using grep, sed or awk. I would like to cut out text lines with the pattern INFO and if exists the following lines of the pattern DETAILS. I need te keep the lines with... (4 Replies)
Discussion started by: Frankg
4 Replies
NPRINT(1)							      nprint								 NPRINT(1)

NAME
nprint - NetWare print client SYNOPSIS
nprint [ -S server ] [ -h ] [ -U username | -n ] [ -C ] [ -q queuename ] [ -d job-description ] [ -p pathname-in-banner ] [ -B username-in- banner ] [ -s ] [ -f filename-in-banner ] [ -l lines ] [ -r rows ] [ -c copies ] [ -t tab size ] [ -T ] [ -N ] [ -F form-number ] filename DESCRIPTION
With nprint, you can print files on print queues of a NetWare file server. There are a lot of options, so you should probably wrap some default configurations into some shell scripts. nprint looks up the file $HOME/.nwclient to find a file server, a user name and possibly a password. See nwclient(5) for more information. Please note that the access permissions of .nwclient MUST be 600, for security reasons. OPTIONS
filename filename is the name of the file you want to print. If file is '-', or no filename is given, standard input is used. -h -h is used to print out a short help text. -S server server is the name of the server you want to use. -U username username is the user name to use for the print request at the server. -P password password is the password to use for the print request at the server. If neither -n nor -P are given, and the user has no open connec- tion to the server, nprint prompts for a password. -n -n should be given if no password is required for the print request. -C By default, passwords are converted to uppercase before they are sent to the server, because most servers require this. You can turn off this conversion by -C. -q queuename queuename is the name of the print queue to use at the print server. At present, you must specify it in upper case characters. -d job-description job-description is the string that appears in pconsole when you list the jobs for the print queue. It will also appear in the "Descrip- tion" field on the banner page. -p pathname-in-banner pathname-in-banner is the string (up to 79 characters) you want to be printed in the "Directory" field on the banner page. -B username-in-banner username-in-banner is the string (up to 12 characters) you want to appear on the lower part of the banner page. It will also appear in the "User name" field. -s Supress printing of banner page -f filename-in-banner filename-in-banner is the string (up to 12 characters) you want to appear in large letters on the lower part of the banner page. Default: the name of the file that is printed, or 'stdin'. -l lines lines is the number of lines to put on one page. Default: 66. -r rows rows is the number of rows to put on one page. Default: 80. -c copies copies tells the print server to the specified number of copies. Default: 1. -t tabs tabs is the number of spaces to print for a Tab-Character. Default: 8. -T tells the print server to expand Tab-Character and use 8 spaces -N tells the print server not to use Form Feeds -F form-number form-number is the the number of the form to be put into the printer. If it's different from the one currently in the printer, your job is only printed if a printer operator has put in the correct form. NOTES
The '-B' option was formerly '-b'. But it conflicted with 'bindery only' login option. SEE ALSO
nwclient(5), slist(1), pqlist(1), ncpmount(8), ncpumount(8) CREDITS
nprint was written by Volker Lendecke (lendecke@math.uni-goettingen.de) nprint 12/27/1995 NPRINT(1)
All times are GMT -4. The time now is 08:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy