Visit Our UNIX and Linux User Community


How to use cat grep and cut together?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to use cat grep and cut together?
# 1  
Old 02-26-2020
How to use cat grep and cut together?

Hello,

I try to

Code:
#!/bin/bash

for ip in $(seq 1 255  );do
    host 10.11.1.$ip >> nameserver2.txt
done

I'm trying to clean up a file I created with this little batch script.

I have more results with names of servers found and not found.
Host 1.1.11.10.in-addr.arpa. not found: 3 (NXDOMAIN)
Host 2.1.11.10.in-addr.arpa. not found: 3 (NXDOMAIN)

I'm doing a nameserver2.txt grep | grep name which displays only existing servers. Except that I have too much information on each line
5.1.11.10.in-addr.arpa domain name pointer serv1.domain.com
6.1.11.10.in-addr.arpa domain name pointer serv2.domain.com


I would like to have only the 1st character each line (so the last of each IP and the name of the server
I'm making a

Code:
cat nameserver2.txt | grep name | cut -d. -f1

but in this case I only have information on two so in the end I made this order:

Code:
cat nameserver.txt | grep name | cut -d. -f1.6 | cut -d '' -f1.5

which therefore results:

5.arpa srv1
6.arpa srv2

I can't delete .arpa.

How can I do ?
# 2  
Old 02-26-2020
Code:
awk '/name/ {sub("[.].*", "", $1); sub("[.].*", "", $NF); print $1, $NF}' nameserver.txt


Last edited by rdrtx1; 02-26-2020 at 12:00 PM..
# 3  
Old 02-26-2020
Not sure what either file's contents is. For the original file, try



Code:
awk  '! /^Host/ {split ($1, T1, "\."); split ($NF, T2, "\."); print T1[1], T2[1]}' nameserver2.txt

This User Gave Thanks to RudiC For This Post:
# 4  
Old 02-26-2020
Thank you for being so quick and fair in your answers


The 1st proposition works perfectly. the second almost except that for the servers not found, there is this:
;; reached
( you can send me a other command line if you want )


in any case to you two

just for knowledge, could it have been done with cat grep and cut?
# 5  
Old 02-26-2020
Code:
grep name nameserver.txt | cut -d" " -f1,5 --output-delimiter="." | cut -d"." -f1,7 --output-delimiter=" "


Last edited by rdrtx1; 02-26-2020 at 12:42 PM..
This User Gave Thanks to rdrtx1 For This Post:
# 6  
Old 02-26-2020
There's NO string like "reached" in your samples, nor semicolons. Those don't show up in my host calls, either. Replace ! /^Host/ with /domain/ or /name/ or /pointer/. If that doesn't help, show your input data.


cat is by no means needed in any of your attempts as both grep and cut can open files by themselves, or you can redirect stdin for them.
grepping the first number is quite easy, like

Code:
$ host 82.165.230.17 | grep -o "^[^.]*"
17

, but extracting the remote hostname not so as you don't know what the FQDN looks like. The nearest I get is

Code:
$ host 82.165.230.17 | grep -oE "^[^.]*| [^. ]*\."
17
 bap.

# 7  
Old 02-26-2020
Quote:
Originally Posted by RudiC
There's NO string like "reached" in your samples, nor semicolons. Those don't show up in my host calls, either. Replace ! /^Host/ with /domain/ or /name/ or /pointer/. If that doesn't help, show your input data.


cat is by no means needed in any of your attempts as both grep and cut can open files by themselves, or you can redirect stdin for them.
grepping the first number is quite easy, like

Code:
$ host 82.165.230.17 | grep -o "^[^.]*"
17

, but extracting the remote hostname not so as you don't know what the FQDN looks like. The nearest I get is

Code:
$ host 82.165.230.17 | grep -oE "^[^.]*| [^. ]*\."
17
 bap.

Yes you are right. it's my fault. There somes lines that i didn't see in the original file, like ";; connection timed out; no servers could be reached"


thank you for your explanation and your help.

Previous Thread | Next Thread
Test Your Knowledge in Computers #330
Difficulty: Easy
The first dual-core CPU was the Intel Pentium D.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Grep or cat The Whole Directory PROBLEMS :(

Hi Guys This is my first post so I am not sure how things go here. I'm sorry if I'm breaking the rule or something. Feel free to correct me about that :) So as I was saying... I'd been trying to grep this folder containing 900,000 txt files but seems no luck. I get either "No such file... (6 Replies)
Discussion started by: Nexeu
6 Replies

2. Shell Programming and Scripting

Replace cat and grep with <

Hello someone told me to use OS=`awk '{print int($3)}' < /etc/redhat-release` instead of OS=cat /etc/redhat-release | `awk '{print int($3)}'` any idea for the reason ? (5 Replies)
Discussion started by: nimafire
5 Replies

3. UNIX for Dummies Questions & Answers

Grep and cat combined

Hello, i need to search one word (snp1) from many files and copy the content of the columns of this word in new file. example: file 1: SNP BP CHR P snp1 1 3 0.01 snp2 2 2 0.05 . . file 2: SNP BP CHR P snp1 1 3 0.06 snp2 2 2 0.3 output... (6 Replies)
Discussion started by: biopsy
6 Replies

4. Slackware

How should I cut this line using cut and grep?

not sure how to do it. wan't to delete it using cut and grep ince i would use it in the shell. but how must the command be? grep "64.233.181.103 wwwGoogle.com" /etc/hosts | cut -d the delimeter is just a space. can you help meplease. :D (1 Reply)
Discussion started by: garfish
1 Replies

5. Shell Programming and Scripting

grep or cat using sed

Is there a way using grep or cat a file to create a new file based on whether the first 9 positions of each record is less than 399999999? This is a fixed file format. (3 Replies)
Discussion started by: ski
3 Replies

6. Shell Programming and Scripting

cat -n and grep

I am not sure if using cat -n is the most efficient way to split a file into multiple files, one file per line in the source file. I thought using cat -n would make it easy to process the file because it produces an output that numbers each line that I could then grep for with the regex "^ *$i".... (3 Replies)
Discussion started by: kapu
3 Replies

7. Shell Programming and Scripting

cat /etc/passwd and grep -v on /etc/shells

Hi All, I'd like to do this cat /etc/passwd and grep -v on the /etc/shells list I'd like to find all shell that doesn't exist on the /etc/passwd. Is there an easy way without doing a egrep -v "/bin/sh|/bin/bash................"? How do I use a file /etc/shells as my list for... (4 Replies)
Discussion started by: itik
4 Replies

8. Shell Programming and Scripting

cat or cut to delimit csv?

Hi, Im a pretty large noob to linux/perl etc and im trying to use mysql slurp to take a delimited file and import it into mysql using stdin (in the hope its faster) mysqlslurp - slurp <STDIN> into a MySQL table - search.cpan.org Christopher Brown / MySQL-Slurp - search.cpan.org Using... (3 Replies)
Discussion started by: newtony
3 Replies

9. UNIX for Dummies Questions & Answers

cat, grep and tee to a local file

Hi, This is what I am trying to do. 1) connect to 3 remote servers from my local machine serverA serverB serverC 2) read error file from each server cat /var/lib/mysql/mydb.err 3) grep for lines displaying "yesterday" date grep "`date +%y%m%d' '-d\"1 day ago\"`" 4) Append those lines to a... (7 Replies)
Discussion started by: shantanuo
7 Replies

10. UNIX for Advanced & Expert Users

cat and grep not working

I am trying to cat a file and then grep that file for a number. I can do it fine on other files but this particular file will not do anything. I tried running it on an older file from the same device but it is just not working. The file is nothing more than a flat file on a unix box. Here is just a... (3 Replies)
Discussion started by: jphess
3 Replies

Featured Tech Videos