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