diff --git a/sh/tests/append-output_test.sh b/sh/tests/append-output_test.sh index b63a849c..6e7001dc 100755 --- a/sh/tests/append-output_test.sh +++ b/sh/tests/append-output_test.sh @@ -9,6 +9,13 @@ script_dirS=$(cd -P "$(dirname "$BASH_SOURCE")" &>/dev/null && pwd) if test ! -e append-output; then mkdir append-output + cat <append-output/results.txt +"In the End" - Linkin Park +"Crawling" - Linkin Park +"Elevation" - U2 +"Get the Party Started" - Pink +"Lady Marmalade" - Christina Aguilera, Lil' Kim, Mya, Pink +EOF cat <append-output/songs.txt "Breathe" - Faith Hill "It Wasn't Me" - Shaggy featuring Ricardo "RikRok" Ducent @@ -67,7 +74,6 @@ if test ! -e append-output; then "Always on Time" - Ja Rule featuring Ashanti EOF fi - challenge() { $(cd "$1" && bash "$script_dirS"/$FILENAME) submitted=$(cat $1/results.txt) @@ -76,6 +82,7 @@ challenge() { expected=$(cat $1/results.txt) diff <(echo "$submitted") <(echo "$expected") } + if [ -s ${FILENAME} ]; then if [[ $(cat $FILENAME | grep "cat <results.txt" | wc -l) -ne 0 ]]; then echo "cheating is not allowed in this exercise!" diff --git a/sh/tests/solutions/append-output.sh b/sh/tests/solutions/append-output.sh index ba4bb63e..6725525b 100755 --- a/sh/tests/solutions/append-output.sh +++ b/sh/tests/solutions/append-output.sh @@ -1 +1,9 @@ +# added this here to make the test cleaner +cat <results.txt +"In the End" - Linkin Park +"Crawling" - Linkin Park +"Elevation" - U2 +"Get the Party Started" - Pink +"Lady Marmalade" - Christina Aguilera, Lil' Kim, Mya, Pink +EOF cat songs.txt | grep "\- J" >>results.txt diff --git a/subjects/devops/append-output/README.md b/subjects/devops/append-output/README.md index 766ad711..e4612da6 100644 --- a/subjects/devops/append-output/README.md +++ b/subjects/devops/append-output/README.md @@ -4,13 +4,13 @@ Create a file `append-output.sh` that will get the output of a file and parse it, and then write it to a file with a specific format using a single command. -Get the content of the `songs.txt`, parse it with the `grep` command to filter the file in order to get all the songs from the artist whose names start with `J`, and write the output to the existing file `results.txt`, check the example below: +Get the content of the file `songs.txt`, parse it with the `grep` command to filter the file in order to get all the songs from the artist whose names start with `J`, and write the output to the existing file `results.txt`, check the example below: ### Usage ```console $ ls -songs.txt result.txt +append-output.sh songs.txt result.txt $ cat songs.txt "Breathe" - Faith Hill "It Wasn't Me" - Shaggy featuring Ricardo "RikRok" Ducent @@ -37,6 +37,11 @@ Expected output: ```console $ ./append-output.sh $ cat result.txt +"In the End" - Linkin Park +"Crawling" - Linkin Park +"Elevation" - U2 +"Get the Party Started" - Pink +"Lady Marmalade" - Christina Aguilera, Lil' Kim, Mya, Pink "All for You" - Janet Jackson "I Wanna Know" - Joe "I'm Real" - Jennifer Lopez @@ -49,6 +54,8 @@ $ cat result.txt $ ``` +> Only the script `append-output.sh` must be submitted! + ### Hints To add the output to a file with a specific format, you can use the `>>` operator to redirect the output of the command to a file, like this: diff --git a/subjects/devops/append-output/results.txt b/subjects/devops/append-output/results.txt new file mode 100644 index 00000000..6a235b61 --- /dev/null +++ b/subjects/devops/append-output/results.txt @@ -0,0 +1,5 @@ +"In the End" - Linkin Park +"Crawling" - Linkin Park +"Elevation" - U2 +"Get the Party Started" - Pink +"Lady Marmalade" - Christina Aguilera, Lil' Kim, Mya, Pink diff --git a/subjects/devops/append-output/songs.txt b/subjects/devops/append-output/songs.txt new file mode 100644 index 00000000..c35291b2 --- /dev/null +++ b/subjects/devops/append-output/songs.txt @@ -0,0 +1,55 @@ +"Breathe" - Faith Hill +"It Wasn't Me" - Shaggy featuring Ricardo "RikRok" Ducent +"Hanging by a Moment" - Lifehouse +"Shape of My Heart" - Backstreet Boys +"Thank You" - Dido +"I'm Like a Bird" - Nelly Furtado +"Family Affair" - Mary J. Blige +"Fallin'" - Alicia Keys +"All for You" - Janet Jackson +"I Wanna Know" - Joe +"U Remind Me" - Usher +"U Got It Bad" - Usher +"I'm a Believer" - Smash Mouth +"Get the Party Started" - Pink +"Wherever You Will Go" - The Calling +"In the End" - Linkin Park +"Loser" - Beck +"Get Ur Freak On" - Missy Elliott +"I'm Real" - Jennifer Lopez +"Butterfly" - Crazy Town +"Crawling" - Linkin Park +"I'm a Slave 4 U" - Britney Spears +"Elevation" - U2 +"Lady Marmalade" - Christina Aguilera, Lil' Kim, Mya, Pink +"Play" - Jennifer Lopez +"I'm Just a Kid" - Simple Plan +"Imitation of Life" - R.E.M. +"Big Pimpin'" - Jay-Z +"Stutter" - Joe featuring Mystikal +"I Wish" - R. Kelly +"This Is the Night" - Clay Aiken +"Hella Good" - No Doubt +"I Know" - Dionne Farris +"I'll Be Missing You" - Puff Daddy and Faith Evans featuring 112 +"I Try" - Macy Gray +"Thong Song" - Sisqo +"Survivor" - Destiny's Child +"I Want It That Way" - Backstreet Boys +"Bad Day" - Daniel Powter +"I'm Like a Bird" - Nelly Furtado +"I Need to Know" - Marc Anthony +"Follow Me" - Uncle Kracker +"Hemorrhage (In My Hands)" - Fuel +"Soak Up the Sun" - Sheryl Crow +"I Hope You Dance" - Lee Ann Womack +"Can't Get You Out of My Head" - Kylie Minogue +"I Just Wanna Love U (Give It 2 Me)" - Jay-Z +"My Love Is Your Love" - Whitney Houston +"Bounce with Me" - Lil' Bow Wow +"Where the Party At" - Jagged Edge +"I'm Already There" - Lonestar +"I Don't Want to Miss a Thing" - Aerosmith +"If You Could Read My Mind" - Stars on 54 +"My Way" - Usher +"Always on Time" - Ja Rule featuring Ashanti