Sponsored Content
Full Discussion: Tab Delimited file in loop
Top Forums Shell Programming and Scripting Tab Delimited file in loop Post 302959131 by sukhdip on Thursday 29th of October 2015 07:16:45 AM
Old 10-29-2015
Tab Delimited file in loop

Hi,

I have requirement to create tab delimited file with values coming from variables.
  1. File will contain only two columns separated by tab.
  2. Header will be added once.
  3. Values will be keep adding upon the script run.
  4. If values already exists then values will be replaced.

I have done so far below work:
Code:
#!/bin/bash

NDIR="/opt/nodes/"
DIRS=`ls -l $NDIR | egrep '^d' | awk '{print $9}'`

HEADER="Environment\tNode"

printf "1\ni\n$HEADER \n.\n\nw\nq\n"|ed -s /usr/node.txt

for DIR in $DIRS
do
echo  ${DIR}
NFILE="/opt/nodes/$DIR/config"

ENV=$(sed -n '/<user-props>/,\|</user-props>| {
   s/ *<kv-pair name="environment.name" value="\([^"]*\)"\/>/\1/p
   }' $NFILE/node.xml)
   
NODE=$(sed -n '/<sys-props>/,\|</sys-props>| {
   s/ *<kv-pair name="node.name" value="\([^"]*\)"\/>/\1/p
   }' $NFILE/node.xml)

echo -e "$ENV\t$NODE" >> /usr/node.txt
done

echo "###### END OF SCRIPT ######"

Above piece of code:
Will read node.xml file. Look for props. assign variables as below:
e.g.,
Code:
ENV = SystemEnv
NODE = SystemNode

There are multiple Nodes in nodes folder so for loop to take care.

Currently I'm able to write values into output file node.txt

Problems:
First time script will run ok. File will be perfect.
But Next time on run Header will be added again and if the folder contains same node names those will be added.
If I use only ">" method with echo then only last node will be added, ignoring the others.
Header method I used to add always print
Code:
?
?

upon run. I couldn't figure out why.
  1. Is there any other method to add header in tab delimited style.
  2. Shall use sed or awk instead of echo to make output file?
  3. Replace the existing entries.

Help needed to make it working as per needs.
Thanks,

Last edited by rbatte1; 09-22-2016 at 09:24 AM.. Reason: Converted to formatted number-list
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

tab delimited file to commas

Hi there Just wondered if someone could help me out I have a file that has been delimited by tabs, ie field1<tab>fiield2<tab>field3 Does anybody know a command that will convert tabs to commas throughout the entire file? Note: there are a number of unpopulated fields in the file so... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

2. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies

3. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

4. UNIX for Dummies Questions & Answers

100 $1's to new tab delimited file

Hi I have 100 files each with only one column of 10 numbers that I wish to add to a new file so that I get 100 columns collected in one tab delimited file. I tried something like: foreach num (1 2 3) foreach? gawk -F '\t' '{$num=$1}1' OFS='\t' Eu9_10.2patienter/pospep_10.2patient$num >>... (5 Replies)
Discussion started by: Banni
5 Replies

5. UNIX for Dummies Questions & Answers

For Loop for a list of tab delimited variables

Hello, I need to run a command for a set of input variables that are present in a tab delimited file, a sample of which is shown below: 1 3749 1 4129 1 5980 2 6201 2 9925 2 6894 3 1338 3 6477 3 6242 3 3632 Every row represents the two input values... (2 Replies)
Discussion started by: Gussifinknottle
2 Replies

6. UNIX for Dummies Questions & Answers

tab delimited file that is not tab delimited.

Hi Forum I have a tab delimited file that opens well in Openoffice calc (excel). But when I perform any operation in command line, it reads the file incorrectly. When I 'save As' the same file in office as tab delimited then it works fine. The file that I think is tab delimited is actually... (8 Replies)
Discussion started by: imlearning
8 Replies

7. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

8. Shell Programming and Scripting

How to make tab delimited file to space delimited?

Hi How to make tab delimited file to space delimited? in put file: ABC kgy jkh ghj ash kjl o/p file: ABC kgy jkh ghj ash kjl Use code tags, thanks. (1 Reply)
Discussion started by: jagdishrout
1 Replies

9. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

10. UNIX for Beginners Questions & Answers

Replace a column in tab delimited file with column in other tab delimited file,based on match

Hello Everyone.. I want to replace the retail col from FileI with cstp1 col from FileP if the strpno matches in both files FileP.txt ... (2 Replies)
Discussion started by: YogeshG
2 Replies
KNIFE-NODE(1)							    Chef Manual 						     KNIFE-NODE(1)

NAME
knife-node - Manage the hosts in your infrastructure SYNOPSIS
knife node sub-command (options) DESCRIPTION
Nodes are data structures that represent hosts configured with Chef. Nodes have a name, a String that uniquely identifies the node, attributes, a nested Hash of properties that describe how the host should be configured, a chef_environment, a String representing the environment to which the node belongs, and a run_list, an ordered list of recipes or roles that chef-client should apply when configuring a host. When a host communicates with a Chef Server, it authenticates using its node_name for identification and signs its reqests with a private key. The Server validates the request by looking up a client object with a name identical to the node_name submitted with the request and verifes the signature using the public key for that client object. NOTE that the client is a different object in the system. It is associ- ated with a node by virtue of having a matching name. By default chef-client(8) will create a node using the FQDN of the host for the node name, though this may be overridden by configuration settings. NODE SUB-COMMANDS The following node subcommands are available: BULK DELETE
knife node bulk delete regex (options) Deletes nodes for which the name matches the regular expression regex on the Chef Server. The regular expression should be given in quotes, and should not be surrounded with forward slashes (as is typical of regular expression literals in scripting languages). CREATE
knife node create name (options) Create a new node. Unless the --disable-editing option is given, an empty node object will be created and displayed in your text editor. If the editor exits with a successful exit status, the node data will be posted to the Chef Server to create the node. DELETE
knife node delete name (options) Deletes the node identified by name on the Chef Server. EDIT
knife node edit name (options) -a, --all Display all node data in the editor. By default, default, override, and automatic attributes are not shown. Edit the node identified by name. Like knife node create, the node will be displayed in your text editor unless the -n option is present. FROM FILE
knife node from file file (options) Create a node from a JSON format file. LIST
knife node list (options) -w, --with-uri Show corresponding URIs List all nodes. RUN_LIST ADD knife node run_list add name run list item (options) -a, --after ITEM Place the ENTRY in the run list after ITEM Add the run list item to the node's run_list. See Run list RUN_LIST REMOVE knife node run_list remove node name run list item (options) Remove the run list item from the node's run_list. SHOW
knife node show node name (options) -a, --attribute [ATTR] Show only one attribute -r, --run-list Show only the run list -F, --format FORMAT Display the node in a different format. -m, --medium Display more, but not all, of the node's data when using the default summary format Displays the node identified by node name on stdout. RUN LIST ITEM FORMAT
Run list items may be either roles or recipes. When adding a role to a run list, the correct syntax is "role[ROLE_NAME]" When adding a recipe to a run list, there are several valid formats: Fully Qualified Format "recipe[COOKBOOK::RECIPE_NAME]", for example, "recipe[chef::client]" Cookbook Recipe Format For brevity, the recipe part of the fully qualified format may be omitted, and recipes specified as "COOKBOOK::RECIPE_NAME", e.g., "chef::client" Default Recipe Format When adding the default recipe of a cookbook to a run list, the recipe name may be omitted as well, e.g., "chef::default" may be written as just "chef" SEE ALSO
knife-client(1) knife-search(1) knife-role(1) AUTHOR
Chef was written by Adam Jacob adam@opscode.com with many contributions from the community. DOCUMENTATION
This manual page was written by Joshua Timberman joshua@opscode.com. Permission is granted to copy, distribute and / or modify this docu- ment under the terms of the Apache 2.0 License. CHEF
Knife is distributed with Chef. http://wiki.opscode.com/display/chef/Home Chef 10.12.0 June 2012 KNIFE-NODE(1)
All times are GMT -4. The time now is 03:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy