Sponsored Content
Top Forums Shell Programming and Scripting cut: get either one or two fields Post 302151780 by radoulov on Monday 17th of December 2007 09:59:06 AM
Old 12-17-2007
Quote:
Originally Posted by maxvirrozeito
Hello,

I would like to extract one or two fields of a line.

At the moment, I am extracting the first field of a line:
Code:
command | cut -f 1 -d '.' > file

The line can have two or three fields delimited with a dot.

if three fields, I want to be able to get the first two
ie if line = X.Y.Z
output X.Y
if two fields, I want to be able to get the first one only.
ie if line = X.Y
output X

How can I do this ?

Thank you for any help
Max
Code:
printf "%s\n" "${line%.*}"

I mean:

Code:
$ printf "X.Y.Z\n"|while IFS= read -r;do printf "%s\n" "${REPLY%.*}";done
X.Y
$ printf "X.Y\n"|while IFS= read -r;do printf "%s\n" "${REPLY%.*}";done
X

If you read doesn't support the -r switch, remove it.

If your shell support process substitution:

Code:
$ { read;printf "${REPLY%.*}";}< <(printf "X.Y.Z\n")
X.Y
$ { read;printf "${REPLY%.*}";}< <(printf "X.Y\n")
X

Where the second printf is your command.

Last edited by radoulov; 12-17-2007 at 11:06 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to cut fields

I want to cut two coloums simulatiously and paste in some other file for ex: cut d ' ' -f3 -f4 xxx | paste yyy - > zzz; from the above i want to cut two fileds 3 and 4 and paste as last coloums of single file (zzz). how to solve this regards rajan (1 Reply)
Discussion started by: rajan_ka1
1 Replies

2. Shell Programming and Scripting

Fast way to cut fields

I have a tab delimited file which has 90 fields and 15 million rows approximately... I need to cut the first 78 fields only and I am using the cut -f1-78 <filename> <outputfile> It is taking a lot of time... Is there a faster way of doing this? Can we use NAWK to gain better... (0 Replies)
Discussion started by: madhunk
0 Replies

3. Shell Programming and Scripting

Cut Last 3 Fields

I have a text: dsj khfksjdh <time> EST 2006 ab cgnr jkkjt <time> EST 2006 gfhdgjghg <time> EST 2006 fkdjh kjhsekjrh kdjhfkh jhdfkhfdkjh kjdf <time> EST 2006 In the above file i need to extract time from every line... which is always the third from the last... Pls help! Cheers, Bouren (4 Replies)
Discussion started by: bourne
4 Replies

4. Shell Programming and Scripting

awk sed cut? to rearrange random number of fields into 3 fields

I'm working on formatting some attendance data to meet a vendors requirements to upload to their system. With some help on the forums here, I have the data close. But they've since changed what they want. The vendor wants me to submit three fields to them. Field 1 is the studentid field,... (4 Replies)
Discussion started by: axo959
4 Replies

5. Shell Programming and Scripting

how to cut fields in file

Hi, I have data in following format. 10001, John, Daves, Architecture, -2219 10002, Jim, Cirners, Businessman, -2219 1003, Tom, Katch, Engineer, -14003 I want to select the last column of the above given file and paste it on a different file in the following manner. File TEST column... (11 Replies)
Discussion started by: kam786sim
11 Replies

6. Shell Programming and Scripting

Cut 2 fields and write to a output file

Hi, I am writing a code where the file is a pipe delimited and I would need to extract the 2nd part of field2 if it is "ATTN", "C/O" or "%" and check to see if field9 is populated or not. If field9 is already populated then leave it as is but if field9 is not populated then take the 2nd part of... (3 Replies)
Discussion started by: msalam65
3 Replies

7. Shell Programming and Scripting

cut a line into different fields based on identifiers

cat fileanme.txt custom1=, custom2=, userPulseId=3005, accountPolicyId=1, custom3=, custom4=, homeLocationId=0, i need to make the fields appear in next line based on identifier (,) ie comma so output should read cat fileanme.txt custom1=, custom2=, userPulseId=3005, ... (8 Replies)
Discussion started by: vivek d r
8 Replies

8. UNIX for Dummies Questions & Answers

Cut fields between delimiters

I'm having bother getting both lines contained in a file to output as the same value. A simple example: john:123456:123:456:doe john:123456:123:doe cut -d: -f1,4 input file john:456 john:doe ^ first line should be same as second. trick one for me, i know why it's because of the... (4 Replies)
Discussion started by: landofus
4 Replies

9. Shell Programming and Scripting

How To Count Fields For Cut?

I am new to cut and I want to use the field option with a space delimiter on an Apache log file. For example, if I wanted to find the 200 HTTP code using cut in this manner on the file below cat access_abc.log | cut -d' ' -f7 | grep "200" 157.55.39.183 - - "GET /content/696-news041305... (4 Replies)
Discussion started by: sharingsunshine
4 Replies

10. UNIX for Beginners Questions & Answers

Cut command: can't make it cut fields

I'm a complete beginner in UNIX (and not a computer science student either), just undergoing a tutoring course. Trying to replicate the instructions on my own I directed output of the ls listing command (lists all files of my home directory ) to My_dir.tsv file (see the screenshot) to make use of... (9 Replies)
Discussion started by: scrutinizerix
9 Replies
explain_printf_or_die(3)				     Library Functions Manual					  explain_printf_or_die(3)

NAME
explain_printf_or_die - formatted output conversion and report errors SYNOPSIS
#include <libexplain/printf.h> int explain_printf_or_die(const char *format); int explain_printf_on_error(const char *format); DESCRIPTION
The explain_printf_or_die function is used to call the printf(3) system call. On failure an explanation will be printed to stderr, obtained from the explain_printf(3) function, and then the process terminates by calling exit(EXIT_FAILURE). The explain_printf_on_error function is used to call the printf(3) system call. On failure an explanation will be printed to stderr, obtained from the explain_printf(3) function, but still returns to the caller. format The format, exactly as to be passed to the printf(3) system call. RETURN VALUE
The explain_printf_or_die function only returns on success, see printf(3) for more information. On failure, prints an explanation and exits, it does not return. The explain_printf_on_error function always returns the value return by the wrapped printf(3) system call. EXAMPLE
The explain_printf_or_die function is intended to be used in a fashion similar to the following example: int result = explain_printf_or_die(format); SEE ALSO
printf(3) formatted output conversion explain_printf(3) explain printf(3) errors exit(2) terminate the calling process COPYRIGHT
libexplain version 0.52 Copyright (C) 2010 Peter Miller explain_printf_or_die(3)
All times are GMT -4. The time now is 04:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy