<p>I've been using this long command:</p>

<pre><code>svn st | awk '/\?/ {print $2}' | xargs svn add
</code></pre>

<p>Similarly, to svn rm files I accidentally deleted with normal rm with :</p>

<pre><code>svn st | awk '/\!/ {print $2}' | xargs svn rm --force
</code></pre>

<p>I guess I can write a bash function to do these two, but I'd prefer an interactive add/rm like the one git has.</p>

I use a generalization of the command line that you run, called
```
svnapply.sh
```
. I did not write it, but I don't remember where I found it. Hopefully, the original author will forgive me for reposting it here:
```
```
#!/bin/bash
#
# Applies arbitrary commands to any svn status. e.g.
#
# Delete all non-svn files (escape the ? from the shell):
# svnapply \? rm
#
# List all conflicted files:
# svnapply C ls -l

APPLY=$1
shift

svn st | egrep "^\\${APPLY}[ ]+" | \
sed -e "s|^\\${APPLY}[ ]*||" | \
sed -e "s|\\\\|/|g" | \
xargs -i "$@" '{}'
```
```
Per the comments, the script allows you to run arbitrary commands against all files with the same status.
Update:
It would not be too difficult to write a script that takes a file path as an argument and prompts the user for add/delete and then does the appropriate thing for that file. Chaining that together with the above script would get you what you want.