Because you seem to be unfamiliar with scripts, here is an example.
#!/bin/sh
# usage: svn st | x 2 | xargs rm
col=$1
shift
awk -v col="$col" '{print $col}' "${@--}"
If you save this in ~/bin/x
and make sure ~/bin
is in your PATH
(now that is something you can and should put in your .bashrc
) you have the shortest possible command for generally extracting column n; x n.
The script should do proper error checking and bail if invoked with a non-numeric argument or the incorrect number of arguments, etc; but expanding on this bare-bones essential version will be in unit 102.
Maybe you will want to extend the script to allow a different column delimiter. Awk by default parses input into fields on whitespace; to use a different delimiter, use -F ':'
where :
is the new delimiter. Implementing this as an option to the script makes it slightly longer, so I'm leaving that as an exercise for the reader.
Given a file file
:
1 2 3
4 5 6
You can either pass it via stdin (using a useless cat
merely as a placeholder for something more useful);
$ cat file | sh script.sh 2
2
5
Or provide it as an argument to the script:
$ sh script.sh 2 file
2
5
Here, sh script.sh
is assuming that the script is saved as script.sh
in the current directory; if you save it with a more useful name somewhere in your PATH
and mark it executable, as in the instructions above, obviously use the useful name instead (and no sh
).