Sponsored Content
Top Forums Shell Programming and Scripting Comparing one file header with another file header Post 302470168 by DGPickett on Tuesday 9th of November 2010 11:03:30 AM
Old 11-09-2010
Code:
 
h=$( sed '
  s/, */,/g
  q
 ' $data_file )
 
emsg=
 
for f in $( sed '
  /^'"$file_type"'|/!d
  s/.*|\(.*\)|.*/\1/
  s/, */ /g
 ' $parm_file )
do
 if [ "$f" != "${h%%,*}" ]
 then
  emsg="$emsg, $f is ${h%%,*}"
 fi
 h=${h#*,}
done
 
if [ "$emsg" != "" ]
then
 echo "File error$emsg." >&2
 mv $data_file Unprocess_file.$data_file
fi

 

9 More Discussions You Might Find Interesting

1. Linux

Reading the header of a tar file(posix header)

say i have these many file in a directory named exam. 1)/exam/newfolder/link.txt. 2)/exam/newfolder1/ and i create a tar say exam.tar well the problem is, when i read the tar file i dont find any metadata about the directories,as you cannot create a tar containig empty directories. on the... (2 Replies)
Discussion started by: Tanvirk
2 Replies

2. Shell Programming and Scripting

Split large file and add header and footer to each file

I have one large file, after every 200 line i have to split the file and the add header and footer to each small file? It is possible to add different header and footer to each file? (1 Reply)
Discussion started by: ashish4422
1 Replies

3. Shell Programming and Scripting

insert a header in a huge data file without using an intermediate file

I have a file with data extracted, and need to insert a header with a constant string, say: H|PayerDataExtract if i use sed, i have to redirect the output to a seperate file like sed ' sed commands' ExtractDataFile.dat > ExtractDataFileWithHeader.dat the same is true for awk and... (10 Replies)
Discussion started by: deepaktanna
10 Replies

4. Shell Programming and Scripting

Renaming all header to specific header pattern

Input #HAC0253 EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV #BASFS12 EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK #ACG5115 TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK #ECG5114 IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK . . Output (5 Replies)
Discussion started by: patrick87
5 Replies

5. UNIX for Dummies Questions & Answers

Merge all csv files in one folder considering only 1 header row and ignoring header of all others

Friends, I need help with the following in UNIX. Merge all csv files in one folder considering only 1 header row and ignoring header of all other files. FYI - All files are in same format and contains same headers. Thank you (4 Replies)
Discussion started by: Shiny_Roy
4 Replies

6. Shell Programming and Scripting

Add column header and row header

Hi, I have an input like this 1 2 3 4 2 3 4 5 4 5 6 7 I would like to count the no. of columns and print a header with a prefix "Col". I would also like to count the no. of rows and print as first column with each line number with a prefix "Row" So, my output would be ... (2 Replies)
Discussion started by: jacobs.smith
2 Replies

7. Shell Programming and Scripting

Manipulate all rows except header, but header should be output as well

Hello There... I have a sample input file .. number:department:amount 125:Market:125.23 126:Hardware store:434.95 127:Video store:7.45 128:Book store:14.32 129:Gasolline:16.10 I will be doing some manipulations on all the records except the header, but the header should always be... (2 Replies)
Discussion started by: juzz4fun
2 Replies

8. Shell Programming and Scripting

Extraction of header columns and comparing it with Header_format

set -x for file in /Src/MEDIA_ASSET/*.csv; do Header_Format = 'VariantNumber|ERP_SYSTEM_CD|MediaType' FILESTATUS = GOOD File_Header = $(cut -d'|' -f1-3 ${file}|head -1) do if ; then ${FILESTATUS} = GOOD else ${FILESTATUS} = BAD break fi done ... (3 Replies)
Discussion started by: spidy
3 Replies

9. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies
FBB::Mstream(3bobcat)						  Message handler					     FBB::Mstream(3bobcat)

NAME
FBB::Mstream - Generic message handling stream SYNOPSIS
#include <bobcat/mstream> Linking option: -lbobcat DESCRIPTION
Objects of this class may be used to handle messages in a standardized way. Messages may be prefixed with order numbers and labels and/or line numbers. Messages generated by Mstream objects may optionally end in an exception, allowing simple implementation of, e.g., fatal error messages. Four message streams are provided by the BOBCAT library and may be used after including the mstream header file. They are all defined in the FBB namespace: o FBB::emsg for generating standard (labeled and numbered) error messages, e.g. [Error 1] this is an error message o FBB::fmsg for generating (labeled) fatal error messages, ending in an exception, e.g., [Fatal] this fatal message is followed by an exception o FBB::imsg for generating plain informational messages, e.g., this is a plain message o FBB::wmsg for generating (labeled) warning messages; [Warning] this is a warning By default all messages are inserted into the standard output stream, but other destinations (standard error, a named file, etc.) can easily be configured. Mstream objects themselves are std::ostream objects, so they can be used as objects passed to functions expecting ostream arguments. Mes- sages inserted into Mstream objects are buffered until the buffer is flushed by their std::ostream parts or when either the FBB::endl or FBB::flush is inserted into the message stream. Since these manipulators act like std::endl and std::flush when inserted into another kind of std::ostream object, using FBB::endl and using FBB::flush might be worth considering. Also, when using namespace std and using namespace FBB is specified the FBB::endl and FBB::flush manipulator will automatically be used with Mstream objects. Messages inserted into Mstream objects are considered completed at the insertion of the FBB::endl or FBB::flush manipulators. Message labels, line number labels and line numbers will only be shown for the next line after these manipulators have been inserted and exceptions are, if needed, thrown from these manipulators. NAMESPACE
FBB All elements mentioned in this man-page, are defined in the namespace FBB. INHERITS FROM
std::ostream CONSTRUCTORS
o Mstream(): The default constructor generates messages using the std::streambuf used by std::cout. There is no limit to the number of messages that may be inserted. No message or line numbers are shown, no exception are thrown when inserting messages. o explicit Mstream(std::ostream &ostr, size_t maxCount = UINT_MAX, std::string const &tag = "", bool throwing = false): This constructor uses the std::streambuf that is also used by the ostream ostr. By default (using the default argument values) there is no limit to the number of messages that may be inserted. No message or line numbers are shown, no exception are thrown when inserting messages. Specifying any other value than UINT_MAX will set the maximum number of messages that can be inserted to that value. The tag defines the text of the message label (e.g., Error). When throwing is specified as true an FBB::Errno exception is thrown after completing a message. The generated exception holds the id (see below for the member id) of the Mstream object from which the exception was thrown as well as the text FBB::Mstream. o explicit Mstream(std::streambuf &buf, size_t maxCount = UINT_MAX, std::string const &tag = "", bool throwing = false): This constructor uses buf to insert messages into. The remaining parameters are identical to those of the previous constructor. o explicit Mstream(std::string const &name, size_t maxCount = UINT_MAX, std::string const &tag = "", bool throwing = false): This constructor creates a std::ofstream from the provided name parameter. It throws an FBB::Errno exception if the stream cannot be opened for writing. If a file by that name already exists it is rewritten. The remaining parameters are identical to those of the previous two constructors. As Mstream inherits from std::ostream the copy constructor is not available. Neither is the move con- structor. MEMBER FUNCTIONS
o size_t count() const: returns the number of inserted messages (if setCount has been called: the value set by the last setCount call plus the number of inserted messages since that call). o bool isActive() const: returns true if messages can actually be inserted into the FBB::MStream object, and false if inserted messages are ignored. When ignoring messages the message count is not updated. o int id() const: returns the unique id of the Mstream object. o bool lineExcess() const: returns true after attempting to insert an additional message after maxCount number of messages have been inserted. o std::string const &lineTag() const: returns the currently used line-tag (by default `Line'). o size_t maxCount() const: returns the maximum number of messages that can be inserted. If the returned value equals UINT_MAX then there is no limit to the number of messages that can be inserted. o void noLineNr(): calling this member will suppress the display of a line number if it is called after calling setLineNr (see below) but before a mes- sage is being (or has been) inserted. o void off(): after calling off messages inserted into the Mstream object are silently ignored. After calling off the internal message counter is not incremented when messages are inserted. o void on(): by default and after calling on messages inserted into the Mstream object are sent to their destination stream. o void reset(std::ostream &ostr): messages inserted into the Mstream object are handled by the std::streambuf also used by ostr. Other parameters (e.g., maxCount, the message label) are kept as-is. o void reset(std::streambuf *buf): messages inserted into the Mstream object are handled by std::streambuf buf. Other parameters (e.g., maxCount, the message label) are kept as-is. o void reset(FBB::Mstream const &mstream): the current object is reset using the parameters of the mstream parameter. o void reset(std::string const &name, size_t maxCount, std::string const &tag, bool throwing): messages inserted into Mstream objects are handled by a std::ofstream created using the provided name parameter. FBB::Errno excep- tion if the stream cannot be opened for writing. If a file by that name already exists it is rewritten. Other parameters (e.g., max- Count, the message label) are kept as-is. o void reset(std::ostream &ostr, size_t maxCount, std::string const &tag, bool throwing): messages inserted into Mstream objects are handled by the std::streambuf also used by ostr. By specifying UINT_MAX for maxCount there is no limit to the number of messages that may be handled by this std::streambuf. The tag defines the text of the message label (e.g., Error or the empty string for no message label). When throwing is specified as true an FBB::Errno exception is thrown after completing a message. o void reset(std::streambuf *buf, size_t maxCount, std::string const &tag, bool throwing): messages inserted into Mstream objects are handled by std::streambuf buf. The remaining parameters are identical to those of the previous reset member. o void reset(std::string const &name, size_t maxCount, std::string const &tag, bool throwing): messages inserted into Mstream objects are handled by a std::ofstream created using the provided name parameter. It throws an FBB::Errno exception if the stream cannot be opened for writing. If a file by that name already exists it is rewritten. The remain- ing parameters are identical to those of the previous two reset members. o void reset(FBB::Mstream const &mstream): the current object is reset using the parameters of the mstream parameter. Following the reset all of the current object's parame- ters can independently be modified from those used by mstream. o bool setActive(bool ifTrue): If ifTrue equals true the Mstream is activated otherwise its actions are suppressed. Returns ifTrue. o void setCount(size_t count): assigns the value count to the object's message counter. o void setLineNr(size_t lineNr): specifies the value lineNr as the message's line number when the next line is displayed (see also noLineNr). This value is not changed by the Mstream object. To display another line number the member will have to be called again (i.e., the line number is not displayed automatically again at every new line). o void setLineTag(std::string const &tag): specifies the tag prefixing line numbers. By default the line tag equals `Line'. o void setMaxCount(size_t maxCount): defines maxCount as the maximum number of messages that can be inserted into the Mstream object. o void setTag(std::string const &tag): specifies the tag prefixing messages. By default the tag is empty. If not empty the tag is enclosed by square brackets. E.g., speci- fying the tag `Error' will prefix messages with [Error]. o std::string const &tag() const: returns the currently used message tag (by default an empty string). o bool throws(): returns true when the Mstream object will throw an FBB::Errno exception at the next completed message. The generated exception holds the id (see earlier for the member id) of the Mstream object from which the exception was thrown as well as the text FBB::Mstream. o void throwing(bool ifTrue): modifies the behaviro of Mstream objects at completed messages. After passing true Mstream objects will throw an FBB::Errno excep- tion at the next completed message, otherwise this exception is not thrown. The generated exception holds the id (see earlier for the member id) of the Mstream object from which the exception was thrown as well as the text FBB::Mstream. MANIPULATORS
Note that the following two manipulators are not members of the class Mstream, but are free functions defined in the namespace FBB. o std::ostream &endl(std::ostream &out): This manipulator inserts a newline character in the Mstream's stream and then calls FBB::flush. This manipulator acts like std::endl and std::flush when inserted into another kind of std::ostream object. o std::ostream &flush(std::ostream &out): This manipulator completes the message that is currently being inserted into an Mstream object. It flushes the object's destination stream and prepares the object for the next message. When the object's throws member returns true it will throw an FBB:::Errno exception which holds the id (see earlier for the member id) of the Mstream object from which the exception was thrown as well as the text FBB::Mstream. When used in combination with another kind of std::ostream object it acts like std::flush. As the manipulators FBB::endl and FBB::flush act like, respectively, std::endl and std::flush when inserted into another kind of std::ostream object, using the declarations `using FBB::endl' and `using FBB::flush' might be worth considering. Also, when using namespace std and using namespace FBB is specified the FBB::endl and FBB::flush manipulator will automatically be called when inserting endl or flush into Mstream objects. EXAMPLE
#include <iostream> #include <algorithm> #include <iterator> #include <bobcat/mstream> #include <bobcat/errno> using namespace std; using namespace FBB; int main(int argc, char **argv) try { imsg << "Informational: " << endl; imsg.off(); cout << "The i-msg stream is now off. This message should appear once" << endl; imsg << "The i-msg stream is now off. This message should appear once" << endl; imsg << "The i-msg stream is now off. This message should appear once" << endl; cout << "But this message is shown" << endl; wmsg << "Warning message" << endl; emsg << "Oops, this this is an error (not really)" << endl; emsg << "Oops, this goes wrong, too" << endl; imsg.on(); imsg << "And another informational msg: " << emsg.count() << " error messages " << flush; emsg << "Third error" << endl; emsg.setMaxCount(3); imsg << "Msg in between" << endl; cerr << "(cerr) LineExcess: " << emsg.lineExcess() << ", count = " << emsg.count() << endl; emsg << "Fourth error" << endl; cerr << "(cerr) LineExcess: " << emsg.lineExcess() << ", count = " << emsg.count() << endl; cerr << "Beyond "; } catch(FBB::Errno const &e) { std::cerr << "Got an Errno object: " << e.why() << ' '; } catch(...) { std::cerr << "Got an exception "; } FILES
bobcat/mstream - defines the class interface SEE ALSO
bobcat(7), errno(3bobcat), mbuf(3bobcat) BUGS
None Reported. DISTRIBUTION FILES
o bobcat_3.01.00-x.dsc: detached signature; o bobcat_3.01.00-x.tar.gz: source archive; o bobcat_3.01.00-x_i386.changes: change log; o libbobcat1_3.01.00-x_*.deb: debian package holding the libraries; o libbobcat1-dev_3.01.00-x_*.deb: debian package holding the libraries, headers and manual pages; o http://sourceforge.net/projects/bobcat: public archive location; BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'. COPYRIGHT
This is free software, distributed under the terms of the GNU General Public License (GPL). AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl). libbobcat1-dev_3.01.00-x.tar.gz 2005-2012 FBB::Mstream(3bobcat)
All times are GMT -4. The time now is 09:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy