diff --git a/utility/main.rs b/utility/main.rs
index fbbcb14a848ecb58e4d377224875ea4b196d59e9..9f5a02aa166502f4553e024500c335db569ed4e8 100644
--- a/utility/main.rs
+++ b/utility/main.rs
@@ -97,6 +97,24 @@ fn shell<E: Display>(mut fs: FileSystem<E>){
                         println!("cd <path>");
                     }
                 },
+                "ed" => {
+                    if let Some(arg) = args.next() {
+                        let mut data = String::new();
+                        loop {
+                            let mut line = String::new();
+                            stdin.read_line(&mut line).unwrap();
+
+                            if line.is_empty() || line == ".\n" {
+                                break;
+                            } else {
+                                data.push_str(&line);
+                            }
+                        }
+                        println!("{}:\n{}", arg, data);
+                    } else {
+                        println!("ed <path>");
+                    }
+                },
                 "find" => {
                     if let Some(arg) = args.next() {
                         match fs.find_node(arg, block) {