Importing and Exporting CSV and XML Files in PowerShell

The Import-Csv cmdlet reads a CSV file and outputs a list of custom PowerShell objects, one for each row of the input data. PowerShell uses the first row of the CSV file as the objects’ properties, and the subsequent lines of the file are the output objects. For example, if you run the command.

Import-Csv Sample.csv
If the CSV file you want to import doesn’t have a header row, you can use the -Header parameter to name the object properties. That is, if Sample1.csv was missing the first line (the header row), you’d use a command like this instead:
Import-Csv Sample.csv -Header DisplayName,EmailAddress
Import-Csv uses the comma character as its default delimiter, but you can use the -Delimiter parameter to specify a different delimiter character. For example, if Sample.csv used a tab character as the delimiter, you’d use this command:
Import-Csv Sample.csv -Delimiter "`t"
Because Import-Csv outputs PowerShell objects, you can then use other PowerShell cmdlets to process the objects. For example, suppose you want to sort the output by DisplayName, but you only want to output the Mail property from each object. To do this, you can use the Sort-Object and Select-Object cmdlets:
Import-Csv Sample.csv | Sort-Object DisplayName |   Select-Object Mail
You can also pass these objects along to the ForEach-Object cmdlet for processing:
Import-Csv Sample.Csv | ForEach-Object {
                                '"{0}" <{1}>' -f $_.DisplayName,$_.Mail

}
This command uses the -f operator to output a formatted string for each object and produces the output shown in Figure 3. If you’re unfamiliar with how to use the ForEach-Object, Sort-Object, and Select-Object cmdlets, see “PowerShell Basics: Filtering Objects” and “PowerShell Basics: Select-Object.”

Exporting CSV FilesSometimes you need to create a CSV file from PowerShell output objects. To do so, you pipe PowerShell’s output to the Export-Csv cmdlet and specify a filename. PowerShell will then write the output objects to a CSV file. It really is that simple, with one minor caveat. By default, Export-Csv writes a line starting with the string #TYPE as the first line of the CSV file. Export-Csv’s -NoTypeInformation parameter omits this extra line of output, so I usually include this parameter.For example, suppose you want to create a copy of Sample.csv sorted by the DisplayName property. All you need to do is import the file, pipe its contents to the Sort-Object cmdlet, then export the contents to a new CSV file:

Import-Csv Sample.csv | Sort-Object DisplayName | Export-Csv Sample-Sorted.csv -NoTypeInformation
Note that Export-Csv can output any PowerShell objects, not just objects produced from using Import-Csv. For example, consider the command:

 

Get-ChildItem | Sort-Object Length |                                 Select-Object FullName,LastWriteTime,Length |                                 Export-Csv Data.csv -NoTypeInformation

 

This command creates a CSV file containing the files in the current directory, sorted by file size. Note that this command uses the Select-Object cmdlet to select each file’s full filename, last write time, and file size (length), so these three properties will be the columns in the CSV file.

 

Search string in log file with powershell

Search string use “or”
cat test.txt | where-object {$_.contains(“CREATE”)-or$_.contains(“date”)}

Search string use “and”
cat test.txt | where-object {$_.contains(“CREATE”)-and$_.contains(“date”)}

Search string and export to a test file
cat test.txt | where-object {$_.contains(“CREATE”)-or$_.contains(“date”)} | out-file test2.txt

Export to a CSV file
Get-Process | Export-Csv c:\scripts\test.csv

C++ In a Nutshell

Chapter 1 : Language Basics

-Compilation Steps
-Tokens
-Comments
-Character Sets
-Alternative Tokens
-Trigraphs

Chapter 2 : Declarations

-Declarations and Definitions
-Scope
-Name Lookup
-Linkage
-Type Declarations
-Object Declarations
-Namespaces

Chapter 3 : Expressions

-Lvalues and Rvalues
-Type Conversions
-Constant Expressions
-Expression Evaluation
-Expression Rules

Chapter 4 : Statements

-Expression Statements
-Declarations
-Compound Statements
-Selections
-Loops
-Control Statements
-Handling Exceptions

Chapter 5 : Functions

-Function Declarations
-Function Definitions
-Function Overloading
-Operator Overloading
-The main Function

Chapter 6 : Classes

-Class Definitions
-Data Members
-Member Functions
-Inheritance
-Access Specifiers
-Friends
-Nested Types

Chapter 7 : Templates

-Overview of Templates
-Template Declarations
-Function Templates
-Class Templates
-Specialization
-Partial Specialization
-Instantiation
-Name Lookup
-Tricks with Templates
-Compiling Templates

Chapter 8 : Standard Library

-Overview of the Standard Library
-C Library Wrappers
-Wide and Multibyte Characters
-Traits and Policies
-Allocators
-Numerics

Chapter 9 : Input and Output

-Introduction to I/O Streams
-Text I/O
-Binary I/O
-Stream Buffers
-Manipulators
-Errors and Exceptions

Chapter 10 : Containers, Iterators, and Algorithms

-Containers
-Iterators
-Algorithms

Chapter 11 : Preprocessor Reference

Chapter 12 : Language Reference

Chapter 13 : Library Reference

Appendix A : Compiler Extensions

-Borland C++ Builder and Kylix
-GNU Compiler Collection
-Microsoft Visual C++

Appendix B : Projects

-Blitz++
-Boost
-STLport

C++ Cookbook


Chapter 1 : Building C++ Applications

-Introduction to Building
-Obtaining and Installing GCC
-Building a Simple “Hello, World” Application from the Command Line
-Building a Static Library from the Command Line
-Building a Dynamic Library from the Command Line
-Building a Complex Application from the Command Line
-Installing Boost.Build
-Building a Simple “Hello, World” Application Using Boost.Build
-Building a Static Library Using Boost.Build
-Building a Dynamic Library Using Boost.Build
-Building a Complex application Using Boost.Build
-Building a Static Library with an IDE
-Building a Dynamic Library with an IDE
-Building a Complex Application with an IDE
-Obtaining GNU make
-Building A Simple “Hello, World” Application with GNU make
-Building a Static Library with GNU Make
-Building a Dynamic Library with GNU Make
-Building a Complex Application with GNU make
-Defining a Macro
-Specifying a Command-Line Option from Your IDE
-Producing a Debug Build
-Producing a Release Build
-Specifying a Runtime Library Variant
-Enforcing Strict Conformance to the C++ Standard
-Causing a Source File to Be Linked Automatically Against a Specified Library
-Using Exported Templates

Chapter 2 : Code Organization

-Introduction
-Making Sure a Header File Gets Included Only Once
-Ensuring You Have Only One Instance of a Variable Across Multiple Source Files
-Reducing #includes with Forward Class Declarations
-Preventing Name Collisions with Namespaces
-Including an Inline File

Chapter 3 : Numbers

-Introduction
-Converting a String to a Numeric Type
-Converting Numbers to Strings
-Testing Whether a String Contains a Valid Number
-Comparing Floating-Point Numbers with Bounded Accuracy
-Parsing a String Containing a Number in Scientific Notation
-Converting Between Numeric Types
-Getting the Minimum and Maximum Values for a Numeric Type

Chapter 4 : Strings and Text

-Introduction
-Padding a String
-Trimming a String
-Storing Strings in a Sequence
-Getting the Length of a String
-Reversing a String
-Splitting a String
-Tokenizing a String
-Joining a Sequence of Strings
-Finding Things in Strings
-Finding the nth Instance of a Substring
-Removing a Substring from a String
-Converting a String to Lower- or Uppercase
-Doing a Case-Insensitive String Comparison
-Doing a Case-Insensitive String Search
-Converting Between Tabs and Spaces in a Text File
-Wrapping Lines in a Text File
-Counting the Number of Characters, Words, and Lines in a Text File
-Counting Instances of Each Word in a Text File
-Add Margins to a Text File
-Justify a Text File
-Squeeze Whitespace to Single Spaces in a Text File
-Autocorrect Text as a Buffer Changes
-Reading a Comma-Separated Text File
-Using Regular Expressions to Split a String

Chapter 5 : Dates and Times

-Introduction
-Obtaining the Current Date and Time
-Formatting a Date/Time as a String
-Performing Date and Time Arithmetic
-Converting Between Time Zones
-Determining a Day’s Number Within a Given Year
-Defining Constrained Value Types

Chapter 6 : Managing Data with Containers

-Introduction
-Using vectors Instead of Arrays
-Using vectors Efficiently
-Copying a vector
-Storing Pointers in a vector
-Storing Objects in a list
-Mapping strings to Other Things
-Using Hashed Containers
-Storing Objects in Sorted Order
-Storing Containers in Containers

Chapter 7 : Algorithms

-Introduction
-Iterating Through a Container
-Removing Objects from a Container
-Randomly Shuffling Data
-Comparing Ranges
-Merging Data
-Sorting a Range
-Partitioning a Range
-Performing Set Operations on Sequences
-Transforming Elements in a Sequence
-Writing Your Own Algorithm
-Printing a Range to a Stream

Chapter 8 : Classes

-Introduction
-Initializing Class Member Variables
-Using a Function to Create Objects (a.k.a. Factory Pattern)
-Using Constructors and Destructors to Manage Resources (or RAII)
-Automatically Adding New Class Instances to a Container
-Ensuring a Single Copy of a Member Variable
-Determining an Object’s Type at Runtime
-Determining if One Object’s Class Is a Subclass of Another
-Giving Each Instance of a Class a Unique Identifier
-Creating a Singleton Class
-Creating an Interface with an Abstract Base Class
-Writing a Class Template
-Writing a Member Function Template
-Overloading the Increment and Decrement Operators
-Overloading Arithmetic and Assignment Operators for Intuitive Class Behavior
-Calling a Superclass Virtual Function

Chapter 9 : Exceptions and Safety

-Introduction
-Creating an Exception Class
-Making a Constructor Exception-Safe
-Making an Initializer List Exception-Safe
-Making Member Functions Exception-Safe
-Safely Copying an Object

Chapter 10 : Streams and Files

-Introduction
-Lining Up Text Output
-Formatting Floating-Point Output
-Writing Your Own Stream Manipulators
-Making a Class Writable to a Stream
-Making a Class Readable from a Stream
-Getting Information About a File
-Copying a File
-Deleting or Renaming a File
-Creating a Temporary Filename and File
-Creating a Directory
-Removing a Directory
-Reading the Contents of a Directory
-Extracting a File Extension from a String
-Extracting a Filename from a Full Path
-Extracting a Path from a Full Path and Filename
-Replacing a File Extension
-Combining Two Paths into a Single Path

Chapter 11 : Science and Mathematics

-Introduction
-Computing the Number of Elements in a Container
-Finding the Greatest or Least Value in a Container
-Computing the Sum and Mean of Elements in a Container
-Filtering Values Outside a Given Range
-Computing Variance, Standard Deviation, and Other Statistical Functions
-Generating Random Numbers
-Initializing a Container with Random Numbers
-Representing a Dynamically Sized Numerical Vector
-Representing a Fixed-Size Numerical Vector
-Computing a Dot Product
-Computing the Norm of a Vector
-Computing the Distance Between Two Vectors
-Implementing a Stride Iterator
-Implementing a Dynamically Sized Matrix
-Implementing a Constant-Sized Matrix
-Multiplying Matricies
-Computing the Fast Fourier Transform
-Working with Polar Coordinates
-Performing Arithmetic on Bitsets
-Representing Large Fixed-Width Integers
-Implementing Fixed-Point Numbers

Chapter 12 : Multithreading

-Introduction
-Creating a Thread
-Making a Resource Thread-Safe
-Notifying One Thread from Another
-Initializing Shared Resources Once
-Passing an Argument to a Thread Function

Chapter 13 : Internationalization

-Introduction
-Hardcoding a Unicode String
-Writing and Reading Numbers
-Writing and Reading Dates and Times
-Writing and Reading Currency
-Sorting Localized Strings

Chapter 14 : XML

-Introduction
-Parsing a Simple XML Document
-Working with Xerces Strings
-Parsing a Complex XML Document
-Manipulating an XML Document
-Validating an XML Document with a DTD
-Validating an XML Document with a Schema
-Transforming an XML Document with XSLT
-Evaluating an XPath Expression
-Using XML to Save and Restore a Collection of Objects

Chapter 15 : Miscellaneous

-Introduction
-Using Function Pointers for Callbacks
-Using Pointers to Class Members
-Ensuring That a Function Doesn’t Modify an Argument
-Ensuring That a Member Function Doesn’t Modify Its Object
-Writing an Operator That Isn’t a Member Function
-Initializing a Sequence with Comma-Separated Values