Sponsored Content
Top Forums Shell Programming and Scripting Read csv file, convert the data and make one text file in UNIX shell scripting Post 302984844 by RJG on Tuesday 1st of November 2016 10:02:42 AM
Old 11-01-2016
Quote:
Originally Posted by RudiC
That problem can certainly be solved in *nix shell or text utilities. What escapes me is the logics defining the second and third output field composition. Why does the first record have three zeroes and two nines, and the second four zeroes and three nines? And, if you are talking of "the 3rd field of the quoted string", is that the third character?

Hi Rudi,


first record has three zeros because (7-length of (1265)) that is (7-4)=3 zeros
first record has two nines because (7-length of 76548)) that is 7-5=2 nines


And for 2 nd record

secondrecord has four zeros because (8-length of (1266)) that is (8-4)=4 zeros
second record has three nines because (8-length of 76545)) that is 8-5=3 nines


And yes, I was trying to say that "the 3rd character of the quoted string"

i.e for 1st field it will be 0
for 2nd field it will be 1

And I am currently using bash shell.I have tried to use the printf command for padding zeros and nines. But it does not work.

i have calculated the number of zeros diff_in_length_zero variable and the number of nines in diff_in_length_nine variablee and tried the following command

Code:
$(printf '%*s' {diff_in_length_zero} '0') 
$(printf '%*s' {diff_in_length_nine} '9')

But it does not work.Previously I used the same command for adding space in a line.

Thanks,
RJG
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

shell script to read data from text file and to load it into a table in TOAD

Hi....can you guys help me out in this script?? Below is a portion text file and it contains these: GEF001 000093625 MKL002510 000001 000000 000000 000000 000000 000000 000001 GEF001 000093625 MKL003604 000001 000000 000000 000000 000000 000000 000001 GEF001 000093625 MKL005675 000001... (1 Reply)
Discussion started by: pallavishetty
1 Replies

2. Shell Programming and Scripting

Shell script to read lines in a text file and filter user data

hi all, I have this file with some user data. example: $cat myfile.txt FName|LName|Gender|Company|Branch|Bday|Salary|Age aaaa|bbbb|male|cccc|dddd|19900814|15000|20| eeee|asdg|male|gggg|ksgu|19911216||| aara|bdbm|male|kkkk|acke|19931018||23| asad|kfjg|male|kkkc|gkgg|19921213|14000|24|... (4 Replies)
Discussion started by: srimal
4 Replies

3. Shell Programming and Scripting

How to read the data from the text file in shell script?

I am having one text file and i need to read that data from my shell script. I will expain you the scenario: Script look like: For name type 1: For age type 2: For Salary type3: echo "Enter the input:" read the data if input is 1 then go to the Text file and print the... (2 Replies)
Discussion started by: dineshmurs
2 Replies

4. Shell Programming and Scripting

Exporting data as a CSV file from Unix shell script

Friends...This is the first time i am trying the report generation using shell script... any suggestions are welcome. Is there a way to set the font size & color when i am exporting the data from unix shell script as a CSV file ? The following sample data is saved as a .csv file in the... (2 Replies)
Discussion started by: appu2176
2 Replies

5. Shell Programming and Scripting

Read data from .csv file through shell script & modify

I need to read data from a file called "test.csv" through shell script where the file contains values like name,price,descriptor etc. There are rows where descriptor (& in some rows name) are written as string & other characters like "car_+" OR "bike*" etc where it should contains strings like... (3 Replies)
Discussion started by: raj100
3 Replies

6. Shell Programming and Scripting

Request for file read option in Unix shell scripting

Hi Friends, I would like to read all the record from one txt file to other file txt For example I have two txt file a.txt and b.txt. I need to read a.txt record by record and I need add the system date @ end of each record before moving it to b.txt. Could you please share the coding for... (4 Replies)
Discussion started by: vinoth124
4 Replies

7. Shell Programming and Scripting

Awk to convert a text file to CSV file with some string manipulation

Hi , I have a simple text file with contents as below: 12345678900 971,76 4234560890 22345678900 5971,72 5234560990 32345678900 71,12 6234560190 the new csv-file should be like: Column1;Column2;Column3;Column4;Column5 123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies

8. Shell Programming and Scripting

Shell scripting:from text file to CSV

Hello friends, I have a file as follows: "empty line" content1 content2 content3 content1 content2 content3 content1 content2 content3 It starts with an empty line, how can i get a csv like this: (12 Replies)
Discussion started by: kraterions
12 Replies

9. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

10. UNIX for Beginners Questions & Answers

Shell - Read a text file with two words and extract data

hi I made this simple script to extract data and pretty much is a list and would like to extract data of two words separated by commas and I would like to make a new text file that would list these extracted data into a list and each in a new line. Example that worked for me with text file... (5 Replies)
Discussion started by: dandaryll
5 Replies
printf(1)						      General Commands Manual							 printf(1)

NAME
printf - Writes formatted output SYNOPSIS
printf format [argument...] STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: printf: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
None OPERANDS
A string describing the manner of writing the output. This string is explained in the DESCRIPTION section. The strings to be written under the control of the format. These strings are explained in the DESCRIPTION section. DESCRIPTION
The printf command converts, formats, and writes its arguments to the standard output. The values specified by the argument variable are formatted under control of the format variable. Syntax of the argument Variable The argument variable is a list of one or more strings to be written to the standard output under the control of the format variable. These are treated as strings if the corresponding conversion character is b, c, or s; otherwise, it is evaluated as a C constant, with the following extensions: A leading + (plus sign) or - (minus sign) is allowed. If the leading character is a ' (single quote) or " (double quote), the value is the numeric value in the underlying code set of the char- acter following the single quote or double quote. Syntax of the format Variable The format variable is a character string that contains three types of objects: Plain characters that are copied to the output stream. The following escape sequences are both copied to the output stream and cause the associated action to occur on display devices that are capa- ble of the action. Backslash Alert Backspace Formfeed Newline Carriage Return Tab Vertical Tab Where ddd is a one-, two-, or three-digit octal number. These escape sequences are displayed as a byte with the numeric value specified by the octal number. A delta character in the format string is treated as a delta character, rather than as a space character. The format variable is reused as often as necessary to satisfy the arguments. Any extra c or s conversion specifications are evaluated as if a null string argument were supplied; other extra conversion specifications are evaluated as if a zero argument were supplied. Each conversion specification in the format variable has the following syntax: A % (percent sign). Zero or more options, which modify the meaning of the conversion specification. The option characters and their meanings are as follows: The result of the conversion is left aligned within the field. The result of a signed conversion always begins with a + (plus) or - (minus). If the first character of a signed conversion is not a sign, a blank is prefixed to the result. If both the blank and + options appear, then the blank option is ignored. The value is converted to an alternative form. For c, d, i, u, and s conversions, the option has no effect. For o conversion, it increases the precision to force the first digit of the result to be a 0 (zero). For x and X conversions, a nonzero result has 0x, or 0X prefixed to it, respectively. For e, E, f, g, and G conversions, the result always contains a radix character, even if no digits follow the radix character. For g and G conversions, trailing zeros are not removed from the result as they usually are. For d, i, o, u, x, X, e, E, f, g, and G conversions, leading zeros (following any indication of sign or base) are used to pad to the field width, no space padding is performed. If the 0 (zero) and - options appear, the 0 (zero) option is ignored. For d, i, o, u, x, and X conversions, if a precision is specified, the 0 (zero) option is ignored. An optional decimal digit string that specifies the minimum field width. If the converted value has fewer characters than the field width, the field is padded on the left to the length specified by the field width. If the left- adjustment option flag (-) is specified, the field is padded on the right. An optional precision. The precision is a (dot) followed by an asterisk (*), or a decimal digit string. If no precision is given, it is treated as 0 (zero). The precision specifies: The minimum number of digits to appear for the d, o, i, u, x, or X conversions. The number of digits to appear after the radix character for the e and f con- versions. The maximum number of significant digits for the g conversion. The maximum number of bytes to be printed from a string in the s conversion. A character that indicates the type of conversion to be applied, as follows: Performs no conversion. Prints a % (percent sign). Accepts a value as a string that may contain backslash-escape sequences. Bytes from the converted string are printed until the end of the string or number of bytes indicated by the precision specification is reached. If the precision is omitted, all bytes until the first null character are printed. The following backslash-escape sequences are supported: The Oddd sequence, where ddd is a one-, two-, or three-digit octal number that is converted to a byte with the numeric value specified by the octal number. The escape sequences previously listed under the description of the format variable. These are converted to the individual characters they represented. The c sequence, which is not displayed and causes the printf command to ignore any remaining characters in the string parameter containing it, any remaining string parameters, and any additional characters in the format variable. Prints the first character of the argument. Accepts an integer value and converts it to a signed decimal notation in the style [-]dddd. The precision specifies the minimum number of dig- its to appear. If the value being converted can be represented in fewer digits, it is expanded with leading zeros. The default pre- cision is 1. The result of converting a 0 (zero) value with a precision of 0 (zero) is a null string. Specifying a field width with a 0 (zero) as a leading character causes the field to be padded with leading zeros. Accepts a float or double value and converts it to the exponential form [-] d.dde +|- dd. There is one digit before the radix character (shown here as the decimal point), and the number of digits after the radix character is equal to the precision specification. The LC_NUMERIC locale category determines the radix character to use in this format. If no precision is specified, then six digits are output. If the precision is 0 (zero), then no radix character appears. The E conversion character produces a number with E instead of e before the exponent. The exponent always contains at least two digits. However, if the value to be printed requires an exponent greater than two digits, additional exponent digits are printed as necessary. Accepts a float or double value and converts it to decimal notation in the format [-] ddd.ddd. The number of digits after the radix character (shown here as the decimal point) is equal to the precision specification. The LC_NUMERIC locale category determines the radix character to use in this format. If no precision is specified, then six digits are output. If the precision is 0 (zero), then no radix character appears. Accepts a float or double value and converts it in the style of the f or e conversion characters (or E in the case of the G conversion), with the precision specifying the number of sig- nificant digits. Trailing zeros are removed from the result. A radix character appears only if it is followed by a digit. The style used depends on the value converted. Style g results only if the exponent resulting from the conversion is less than -4, or if it is greater than or equal to the precision. Accepts an integer value and converts it to unsigned octal notation. The precision speci- fies the minimum number of digits to appear. If the value being converted can be represented in fewer digits, it is expanded with leading zeros. The default precision is 1. The result of converting a 0 (zero) value with a precision of 0 (zero) is a null string. Specifying a field width with a 0 (zero) as a leading character causes the field width value to be padded with leading zeros. An octal value for field width is not implied. Accepts a value as a string, and bytes from the string are printed until the end of the string is encountered or the number of bytes indicated by the precision is reached. If no precision is specified, all characters up to the first null character are printed. Accepts an integer value and converts it to unsigned decimal notation. The precision spec- ifies the minimum number of digits to appear. If the value being converted can be represented in fewer digits, it is expanded with leading zeros. The default precision is 1. The result of converting a 0 (zero) value with a precision of 0 (zero) is a null string. Specifying a field width with a 0 (zero) as a leading character causes the field width value to be padded with leading zeros. Accepts an integer value and converts it to unsigned hexadecimal notation. The letters abcdef are used for the x conversion and the letters ABCDEF are used for the X conversion. The precision specifies the minimum number of digits to appear. If the value being converted can be represented in fewer digits, it is expanded with leading zeros. The default precision is 1. The result of convert- ing a 0 (zero) value with a precision of 0 (zero) is a null string. Specifying a field width with a 0 (zero) as a leading character causes the field width value to be padded with leading zeros. If the result of a conversion is wider than the field width, the field is expanded to contain the converted result. No truncation occurs. However, a small precision may cause truncation on the right. EXAMPLES
The following printf command formats a series of numbers: printf "%5d%4d " 1 21 321 4321 54321 This command produces the following output: 1 21 3214321 54321 0 The format variable is used three times to print all of the given strings. The 0 (zero) is supplied by the printf command to satisfy the last %4d conversion specification. The following script includes printf commands to alert the user (sound a beep) and to dis- play prompts for entering a name and phone number. The script then appends the user entries to a file. printf "aPlease fill in the following: Name: " read name printf "Phone number: " read phone echo $name " " $phone >> phone_list echo >> phone_list ENVIRONMENT VARIABLES
The following environment variables affect the execution of printf: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. Determines the locale for numbers written using the e, E, f, g, or G conversion characters. SEE ALSO
Commands: awk(1), bc(1), echo(1), read(1) Functions: printf(3) Standards: standards(5) printf(1)
All times are GMT -4. The time now is 07:13 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy