Print strings in bash in loop


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Print strings in bash in loop
# 8  
Old 12-22-2019
Quote:
Originally Posted by 7adi
Hi,

@neo, may be we are not on same page, the code you have quoted is my output actually.
Yes, I see that now.... sorry busy working on apache2 error.... missed that (your output versus input)... my bad.

Will test something on my mac and post back.
# 9  
Old 12-22-2019
I think on macos, perl is a better choice (for this REGEX):

Code:
macos$ perl -p -e 's/name:/\nname:/g' test.txt > a.txt

Code:
macos$ cat test.txt a.txt
name:Pages, path:/Applications/Pages.app, class:login item, kind:Application, hidden:false, name:Calculator, path:/System/Applications/Calculator.app, class:login item, kind:Application, hidden:true, name:Calendar, path:/System/Applications/Calendar.app, class:login item, kind:Application, hidden:false

name:Pages, path:/Applications/Pages.app, class:login item, kind:Application, hidden:false, 
name:Calculator, path:/System/Applications/Calculator.app, class:login item, kind:Application, hidden:true, 
name:Calendar, path:/System/Applications/Calendar.app, class:login item, kind:Application, hidden:false

This User Gave Thanks to Neo For This Post:
# 10  
Old 12-22-2019
Also, FYI.. on macOS, you can also install GNU sed and it works as expected:

brew install gnu-sed

Code:
macos$ gsed  's/name:/\nname:/g' test.txt > a.txt
macos$ cat test.txt a.txt
name:Pages, path:/Applications/Pages.app, class:login item, kind:Application, hidden:false, name:Calculator, path:/System/Applications/Calculator.app, class:login item, kind:Application, hidden:true, name:Calendar, path:/System/Applications/Calendar.app, class:login item, kind:Application, hidden:false

name:Pages, path:/Applications/Pages.app, class:login item, kind:Application, hidden:false, 
name:Calculator, path:/System/Applications/Calculator.app, class:login item, kind:Application, hidden:true, 
name:Calendar, path:/System/Applications/Calendar.app, class:login item, kind:Application, hidden:false

This User Gave Thanks to Neo For This Post:
# 11  
Old 12-22-2019
Hi @Neo,


Thank you very much. Yes, perl did the job. I will find something with sed or awk and avoiding installing gsed.


Code:
tests-Mac:~ test$ osascript -e 'tell application "System Events" to get properties of every login item'| perl -p -e 's/, name:/\nname:/g'
name:Dictionary, path:/Applications/Dictionary.app, class:login item, kind:Application, hidden:false
name:CCleaner, path:/Applications/CCleaner.app, class:login item, kind:Application, hidden:false
name:Calendar, path:/Applications/Calendar.app, class:login item, kind:Application, hidden:false
name:Dashboard, path:/Applications/Dashboard.app, class:login item, kind:Application, hidden:false
tests-Mac:~ test$

Thank you very much.
# 12  
Old 12-22-2019
Quote:
Originally Posted by 7adi
Hi @Neo,
Thank you very much. Yes, perl did the job. I will find something with sed or awk and avoiding installing gsed.
Welcome.

I think you will have some trouble with sed on the mac. I checked the web, and this newline issue on the macos version of sed is very frustrating for many people . The best idea for sed (on macos) is to install gsed.

However, perl works well, as you discovered.

I'm sure one of our many very talented and world exceptional awk experts has a great awk idea for you. I never really enjoy using awk, my bad, and generally process text with PHP or Python, only because I prefer more self-descriptive syntax for future maintenance and code changes years later (but that's just me... YMMV).
This User Gave Thanks to Neo For This Post:
# 13  
Old 12-22-2019
See the post #6.
The two lines approach works with any sed and any standard shell.
# 14  
Old 12-22-2019
Quote:
Originally Posted by MadeInGermany
See the post #6.
The two lines approach works with any sed and any standard shell.
That works from the shell command line for sure.

But, I don't think the original poster wants to necessarily force a line break like that into his sequence of commands, when their are clearly alternatives:

For example, using perl:

Code:
 osascript -e 'tell application "System Events" to get properties of every login item'| perl -p -e 's/, name:/\nname:/g'

so it becomes:

Code:
 osascript -e 'tell application "System Events" to get properties of every login item'| sed 's/, name/\
name/g'

It's a matter of personal preference (goes without saying) and in this case, what is the preference of the original poster, 7adi, on macOS?

I know what my personal preference is (sed on Linux, gsed or perl on macOS ). But for the original poster, I have no idea what is their preference.
This User Gave Thanks to Neo For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using arrays in bash using strings to bash built-in true

I have the following code and for some reason when I call the program using /home/tcdata/tatsh/trunk/hstmy/bin/bash/raytrac.bash --cmod=jcdint.cmod I get hasArgument = hasArgument = true Somehow the array element is returning even though I have not chosen the option. ... (41 Replies)
Discussion started by: kristinu
41 Replies

2. Shell Programming and Scripting

[Help me!] Print text between two strings

Deal All, I have problem for this: input file : "data.txt" R 240 585694.59946146.8 8.0 239 585694.09946134.3 8.0 238 585693.59946121.8 8.01R 237 585693.09946109.3 8.0 236 585692.59946096.9 8.0 235 585692.19946084.4 8.01R 234 585691.59946071.9 8.0 233 585691.09946059.5 8.0 232... (2 Replies)
Discussion started by: aksin
2 Replies

3. Shell Programming and Scripting

[Help me!] print text between two strings

Deal All, I have problem for this: input file : "data.txt" R 240 585694.59946146.8 8.0 239 585694.09946134.3 8.0 238 585693.59946121.8 8.01R 237 585693.09946109.3 8.0 236 585692.59946096.9 8.0 235 585692.19946084.4 8.01R 234 585691.59946071.9 8.0 233 585691.09946059.5 8.0 232... (2 Replies)
Discussion started by: aksin
2 Replies

4. UNIX for Dummies Questions & Answers

Get strings on a file and print

hi all! i have a file like this lea 25 female dave 18 male jake 27 male and i want to have an output file like this my name is lea. i am 25. female my name is dave. i am 18. male my name is jake. i am 27. male thanks! (2 Replies)
Discussion started by: engr.jay
2 Replies

5. Shell Programming and Scripting

BASH loop inside a loop question

Hi all Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Discussion started by: rethink
4 Replies

6. Shell Programming and Scripting

print specific strings only

Hello, I have a file like this.. 2 168611167 STK39 STK39 --- 27347 "serine threonine kinase 39 (STE20/SPS1 homolog, yeast)" YES SNP_A-2086192 rs16854601 0.001558882 6 13670256 SIRT5 /// RPS4X SIRT5 --- 23408 /// 6191 "sirtuin (silent mating type... (5 Replies)
Discussion started by: genehunter
5 Replies

7. Shell Programming and Scripting

Using variables created sequentially in a loop while still inside of the loop [bash]

I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends. As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

8. Shell Programming and Scripting

Print all the lines between 2 specified strings

Hi All, I have a file in which i want to print all the lines between 2 defined strings. Ex- I have file with data as follows STEP1:- ----- has some 20 -30 lines of data STEP2:- ----- has some 20 -30 lines of data So i want to print those lines between STEP1 & STEP2. (line including STEP1)... (7 Replies)
Discussion started by: digitalrg
7 Replies

9. Shell Programming and Scripting

Print all between 2 strings

Hi All, I'm working on a large file and need to extract all data between 2 strings. I have seen many good solutions to threads almost like my problem but none that quite fit. This is all very new to me so any ideas would be really appreciated! (attempted to read sed and awk tutorials but got a... (9 Replies)
Discussion started by: soots
9 Replies

10. Shell Programming and Scripting

bash and ksh: variable lost in loop in bash?

Hi, I use AIX (ksh) and Linux (bash) servers. I'm trying to do scripts to will run in both ksh and bash, and most of the time it works. But this time I don't get it in bash (I'm more familar in ksh). The goal of my script if to read a "config file" (like "ini" file), and make various report.... (2 Replies)
Discussion started by: estienne
2 Replies
Login or Register to Ask a Question