From a752c4f14e8acfb02f6f530fc6affc2b71d99201 Mon Sep 17 00:00:00 2001 From: Philipp Rost <philipp.rost@fau.de> Date: Mon, 13 Feb 2023 18:44:37 +0100 Subject: [PATCH] LC '194. Transpose File' solution --- .gitignore | 2 +- 194-file.txt | 4 ++++ 194-transpose-file.sh | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 194-file.txt create mode 100755 194-transpose-file.sh diff --git a/.gitignore b/.gitignore index 8b13789..11d22ac 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 0000000..5087d2f --- /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 0000000..673a566 --- /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 -- GitLab