diff --git a/src/uu/lsmem/src/lsmem.rs b/src/uu/lsmem/src/lsmem.rs
index f03d946..88ba98c 100644
--- a/src/uu/lsmem/src/lsmem.rs
+++ b/src/uu/lsmem/src/lsmem.rs
@@ -242,12 +242,6 @@ impl TableRow {
             self.range, self.size, self.state, self.removable, self.block
         )
     }
-    fn to_raw_string(&self) -> String {
-        format!(
-            r#"{} {} {} {} {}"#,
-            self.range, self.size, self.state, self.removable, self.block
-        )
-    }
 }
 
 #[derive(Serialize)]
@@ -538,7 +532,7 @@ fn print_table(lsmem: &Lsmem, opts: &Options) {
     let table_rows = create_table_rows(lsmem, opts);
     let mut col_widths = vec![0; opts.columns.len()];
 
-    // Initialize column widths based on column names
+    // Initialize column widths based on pre-defined width hints
     for (i, column) in opts.columns.iter().enumerate() {
         col_widths[i] = column.get_width_hint();
     }
@@ -611,19 +605,25 @@ fn print_pairs(lsmem: &Lsmem, opts: &Options) {
 }
 
 fn print_raw(lsmem: &Lsmem, opts: &Options) {
+    let table_rows = create_table_rows(lsmem, opts);
+
     if !opts.noheadings {
-        println!("RANGE SIZE STATE REMOVABLE BLOCK");
+        let headings = opts
+            .columns
+            .iter()
+            .map(|col| col.get_name().to_string())
+            .collect::<Vec<String>>();
+        println!("{}", headings.join(" "));
     }
 
-    let table_rows = create_table_rows(lsmem, opts);
-    let mut table_raw_string = String::new();
     for row in table_rows {
-        table_raw_string += &row.to_raw_string();
-        table_raw_string += "\n";
+        let columns = opts
+            .columns
+            .iter()
+            .map(|col| row.get_value(col).to_string())
+            .collect::<Vec<String>>();
+        println!("{}", columns.join(" "));
     }
-    // remove the last newline
-    table_raw_string.pop();
-    println!("{table_raw_string}");
 }
 
 fn print_summary(lsmem: &Lsmem, opts: &Options) {
diff --git a/tests/by-util/test_lsmem.rs b/tests/by-util/test_lsmem.rs
index 16bc60a..0f78d74 100644
--- a/tests/by-util/test_lsmem.rs
+++ b/tests/by-util/test_lsmem.rs
@@ -31,14 +31,13 @@ fn test_columns_table() {
     sysroot_test_with_args("test_lsmem_columns_table.expected", &["-o", "block,size"]);
 }
 
-// FAILS, COMMENT FOR NOW - TODO
-// #[test]
-// fn test_columns_raw() {
-//     sysroot_test_with_args(
-//         "test_lsmem_columns_raw.expected",
-//         &["-o", "block,size", "-r"],
-//     );
-// }
+#[test]
+fn test_columns_raw() {
+    sysroot_test_with_args(
+        "test_lsmem_columns_raw.expected",
+        &["-o", "block,size", "-r"],
+    );
+}
 
 // FAILS, COMMENT FOR NOW - TODO
 // #[test]