Sample Input File
+--------------------+---------+---------
| Name | S1 | S2
+--------------------+---------+---------
| A | -4.703 | -2.378
| B | -3283.2 | -3204.5
| C | 8779 | 7302
| D | 22078 | 18018
+--------------------+---------+---------
It is required to remove the S1 Column, i.e
Desired Output
+--------------------+---------
| Name | S2
+--------------------+---------
| A | -2.378
| B | -3205.5
| C | 7302
| D | 18018
+--------------------+---------
Can anyone help with this
thanks
In command mode:
This uses vim’s built-in sed-like search and replace command. Here’s the breakdown:
%– for the entire files– search for/^– the start of line\([[+|][^+|]\+\)– followed by+or|, followed by any number (\+) of anything that is not+or|. This will get the first column, which we want to keep, so put it in a capture group by surrounding it with\(and\)[+|][^+|]\+– followed by+or|, followed by any number (\+) of anything that is not+or|. This will get the second column, which we don’t want to keep, so no capture group./\1/– replace everything we matched with the first capture group (which contains the first column). This effectively replaces the first and second column with the contents of the first column.Like I said, vim’s regex are pretty much identical to sed, so you if you look through this tutorial on sed you’ll probably pick up a lot of useful stuff for vim as well.
Edit
In response to the OP’s request to make this more generally capable of deleting any column:
The index inside of the
\{\}, now deletes the column indicated. Think of it like an array index (i.e. starts at zero). So\{0\}now deletes the first column,\{1\}deletes the second, and so on.