diff --git a/.gitignore b/.gitignore index 8b137891791fe96927ad78e64b0aad7bded08bdc..11d22ac121a73bcade731933b4a4695918afbc23 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ - +194-file-transposed.txt diff --git a/194-file.txt b/194-file.txt new file mode 100644 index 0000000000000000000000000000000000000000..5087d2ffb7a43c4143f12b45a23a97fffe537193 --- /dev/null +++ b/194-file.txt @@ -0,0 +1,4 @@ +name age gender +alice 21 female +ryan 30 male +steve 14 male diff --git a/194-transpose-file.sh b/194-transpose-file.sh new file mode 100755 index 0000000000000000000000000000000000000000..673a566e0b2d241afaa80fffb56ee87d189e205d --- /dev/null +++ b/194-transpose-file.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# solution for +# https://leetcode.com/problems/transpose-file/ + +#export PS4="\$LINENO: " +#set -xv + +file="194-file.txt" +transposed_file="194-file-transposed.txt" +# delete file contents +cat /dev/null > $transposed_file + +# count ' ' (spaces) in the first line as the are the delimiter +# no trailing spaces assumed +# +1 because there is always one delimiter less than entries +nmb_cols=$(($(head -1 194-file.txt | grep -o " " | wc -l) + 1)) +# iterate over evey column +for i in $(seq 1 $nmb_cols); do + # extract column, replace newlines with spaces, append to output file + cut -d " " -f $i < $file | tr "\n" " " >> $transposed_file + # append newline for proper formatting + echo "" >> $transposed_file +done