Add a different string in the beginning of each line [closed]
Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
So I have a txt with some numbers inside and I want to add a string before those numbers, but not the same string in every line. So for example I have:
49.950
38.654
104.138
168.171
100.586
and I want to add before them the words nick, george, james so the result will be
www.abc.com 49.950
www.facebook.com 38.654
www.youtube.com 104.138
www.google.com 168.171
www.twitch.com 100.586
How am I gonna do that?
while read -r line; do x="$line"
if [ "$line" == "www.abc.com" ]; then
ping -c 4 www.abc.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 > results
fi
if [ "$line" == "www.facebook.com" ]; then
ping -c 4 www.facebook.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.youtube.com" ]; then
ping -c 4 www.youtube.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.google.com" ]; then
ping -c 4 www.google.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.twich.com" ]; then
ping -c 4 www.twitch.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >>results
fi
done <urls
text-processing awk
closed as unclear what you're asking by G-Man, Stephen Rauch, Sparhawk, jimmij, Shadur Nov 20 '17 at 9:28
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, itâÂÂs hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
 |Â
show 3 more comments
up vote
1
down vote
favorite
So I have a txt with some numbers inside and I want to add a string before those numbers, but not the same string in every line. So for example I have:
49.950
38.654
104.138
168.171
100.586
and I want to add before them the words nick, george, james so the result will be
www.abc.com 49.950
www.facebook.com 38.654
www.youtube.com 104.138
www.google.com 168.171
www.twitch.com 100.586
How am I gonna do that?
while read -r line; do x="$line"
if [ "$line" == "www.abc.com" ]; then
ping -c 4 www.abc.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 > results
fi
if [ "$line" == "www.facebook.com" ]; then
ping -c 4 www.facebook.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.youtube.com" ]; then
ping -c 4 www.youtube.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.google.com" ]; then
ping -c 4 www.google.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.twich.com" ]; then
ping -c 4 www.twitch.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >>results
fi
done <urls
text-processing awk
closed as unclear what you're asking by G-Man, Stephen Rauch, Sparhawk, jimmij, Shadur Nov 20 '17 at 9:28
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, itâÂÂs hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
1
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
1
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
So, you just want merge two files, line by line? Then,paste -d' ' first.txt second.txt
would be enough.
â MiniMax
Nov 18 '17 at 21:29
3
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30
 |Â
show 3 more comments
up vote
1
down vote
favorite
up vote
1
down vote
favorite
So I have a txt with some numbers inside and I want to add a string before those numbers, but not the same string in every line. So for example I have:
49.950
38.654
104.138
168.171
100.586
and I want to add before them the words nick, george, james so the result will be
www.abc.com 49.950
www.facebook.com 38.654
www.youtube.com 104.138
www.google.com 168.171
www.twitch.com 100.586
How am I gonna do that?
while read -r line; do x="$line"
if [ "$line" == "www.abc.com" ]; then
ping -c 4 www.abc.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 > results
fi
if [ "$line" == "www.facebook.com" ]; then
ping -c 4 www.facebook.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.youtube.com" ]; then
ping -c 4 www.youtube.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.google.com" ]; then
ping -c 4 www.google.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.twich.com" ]; then
ping -c 4 www.twitch.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >>results
fi
done <urls
text-processing awk
So I have a txt with some numbers inside and I want to add a string before those numbers, but not the same string in every line. So for example I have:
49.950
38.654
104.138
168.171
100.586
and I want to add before them the words nick, george, james so the result will be
www.abc.com 49.950
www.facebook.com 38.654
www.youtube.com 104.138
www.google.com 168.171
www.twitch.com 100.586
How am I gonna do that?
while read -r line; do x="$line"
if [ "$line" == "www.abc.com" ]; then
ping -c 4 www.abc.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 > results
fi
if [ "$line" == "www.facebook.com" ]; then
ping -c 4 www.facebook.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.youtube.com" ]; then
ping -c 4 www.youtube.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.google.com" ]; then
ping -c 4 www.google.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >> results
fi
if [ "$line" == "www.twich.com" ]; then
ping -c 4 www.twitch.com | tail -1 | awk 'print $4' | cut -d '/' -f 2 >>results
fi
done <urls
text-processing awk
edited Nov 19 '17 at 14:52
dessert
1,013321
1,013321
asked Nov 18 '17 at 21:21
Georgio3
83
83
closed as unclear what you're asking by G-Man, Stephen Rauch, Sparhawk, jimmij, Shadur Nov 20 '17 at 9:28
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, itâÂÂs hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as unclear what you're asking by G-Man, Stephen Rauch, Sparhawk, jimmij, Shadur Nov 20 '17 at 9:28
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, itâÂÂs hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
1
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
1
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
So, you just want merge two files, line by line? Then,paste -d' ' first.txt second.txt
would be enough.
â MiniMax
Nov 18 '17 at 21:29
3
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30
 |Â
show 3 more comments
1
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
1
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
So, you just want merge two files, line by line? Then,paste -d' ' first.txt second.txt
would be enough.
â MiniMax
Nov 18 '17 at 21:29
3
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30
1
1
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
1
1
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
So, you just want merge two files, line by line? Then,
paste -d' ' first.txt second.txt
would be enough.â MiniMax
Nov 18 '17 at 21:29
So, you just want merge two files, line by line? Then,
paste -d' ' first.txt second.txt
would be enough.â MiniMax
Nov 18 '17 at 21:29
3
3
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30
 |Â
show 3 more comments
1 Answer
1
active
oldest
votes
up vote
2
down vote
accepted
Complete bash
+ awk
solution:
while read -r url || [ -n "$url" ]; do
ping -c4 "$url" | awk -F'/' -v u="$url" 'END print u,$5 '
done <urls > results
The exemplary results
file contents (as a result of my local test):
www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
This won't take the last line if it doesn't end with a linebreak. Usewhile read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.
â dessert
Nov 19 '17 at 13:04
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
 |Â
show 9 more comments
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
Complete bash
+ awk
solution:
while read -r url || [ -n "$url" ]; do
ping -c4 "$url" | awk -F'/' -v u="$url" 'END print u,$5 '
done <urls > results
The exemplary results
file contents (as a result of my local test):
www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
This won't take the last line if it doesn't end with a linebreak. Usewhile read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.
â dessert
Nov 19 '17 at 13:04
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
 |Â
show 9 more comments
up vote
2
down vote
accepted
Complete bash
+ awk
solution:
while read -r url || [ -n "$url" ]; do
ping -c4 "$url" | awk -F'/' -v u="$url" 'END print u,$5 '
done <urls > results
The exemplary results
file contents (as a result of my local test):
www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
This won't take the last line if it doesn't end with a linebreak. Usewhile read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.
â dessert
Nov 19 '17 at 13:04
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
 |Â
show 9 more comments
up vote
2
down vote
accepted
up vote
2
down vote
accepted
Complete bash
+ awk
solution:
while read -r url || [ -n "$url" ]; do
ping -c4 "$url" | awk -F'/' -v u="$url" 'END print u,$5 '
done <urls > results
The exemplary results
file contents (as a result of my local test):
www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
Complete bash
+ awk
solution:
while read -r url || [ -n "$url" ]; do
ping -c4 "$url" | awk -F'/' -v u="$url" 'END print u,$5 '
done <urls > results
The exemplary results
file contents (as a result of my local test):
www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
edited Nov 19 '17 at 16:38
answered Nov 18 '17 at 21:37
RomanPerekhrest
22.4k12145
22.4k12145
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
This won't take the last line if it doesn't end with a linebreak. Usewhile read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.
â dessert
Nov 19 '17 at 13:04
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
 |Â
show 9 more comments
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
This won't take the last line if it doesn't end with a linebreak. Usewhile read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.
â dessert
Nov 19 '17 at 13:04
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
This is a complete solution, describes the whole process? From pinging to generating the final txt file?
â Georgio3
Nov 18 '17 at 21:38
1
1
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
@Georgio3, you're welcome. As for leaning - bash is pretty useful for System/Unix programming. Anyway, it's your choice
â RomanPerekhrest
Nov 18 '17 at 21:48
1
1
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
Java is primarily used these days to develop server software and the vast majority of such software runs on Linux. As a 20-year veteran of primarily Java software development I can tell you that you that there is a very high probability you will need at some familiarity with Linux command line tools, scripting and general systems knowledge (unless you are referring to developing Java desktop applications...a shrinking, niche market if ever there was one).
â B Layer
Nov 19 '17 at 5:47
1
1
This won't take the last line if it doesn't end with a linebreak. Use
while read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.â dessert
Nov 19 '17 at 13:04
This won't take the last line if it doesn't end with a linebreak. Use
while read -r url || [ -n "$url" ]; do â¦; done <urls
instead to be sure.â dessert
Nov 19 '17 at 13:04
1
1
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:
â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
You could also just redirect the whole loop's output instead of opening the file multiple times inside the loop:
â¦; done <urls >results
â dessert
Nov 19 '17 at 13:12
 |Â
show 9 more comments
1
what if there would be more that 3 numbers?
â RomanPerekhrest
Nov 18 '17 at 21:22
I have a fixed amount of numbers, they are 5. Actually i'm reading from a txt of 5 urls and I ping every url 4 times, i take the average time of each url and add it to a new txt. So i'm having 5 lines of the 5 average times and i just need to add in front of them the equivalent urls.
â Georgio3
Nov 18 '17 at 21:23
1
update your question with those 5 numbers and respective names/URLs. Also, it's good to post your current code
â RomanPerekhrest
Nov 18 '17 at 21:24
So, you just want merge two files, line by line? Then,
paste -d' ' first.txt second.txt
would be enough.â MiniMax
Nov 18 '17 at 21:29
3
The result you wrote doesn't match the description right before it. You mention names that do not appear on the example output.
â Zip
Nov 18 '17 at 21:30