将单个sed命令转换为可重用的Textmate命令

Wol*_*lfr 5 textmate text editor sed

我有7行文字:

a
b
c
d
e
f
g
Run Code Online (Sandbox Code Playgroud)

现在我想在每行的末尾添加字符,最后得到:

a,
b,
c,
d,
e,
f,
g,
Run Code Online (Sandbox Code Playgroud)

我发现我可以使用"sed"命令并使用Textmate中的"通过命令过滤"在sed中运行我的选择

sed 's/$/,/'
Run Code Online (Sandbox Code Playgroud)

现在,还有一个问题:如何将其转换为Textmate命令,以某种方式获取输入(因此它知道要追加的文本)?

(我尝试这样做已被证明是不成功的)

Gre*_*ale 3

将其弹出到文本包中的命令中,它将把剪贴板中的任何内容附加到已选择的所有行的末尾:

#!/bin/bash
if [[ $(pbpaste|wc -l) -eq 0 ]]
    then r=`pbpaste`
    sed 's/$/'$r'/'
    else sed 's/$/,/'
fi
Run Code Online (Sandbox Code Playgroud)

目前仅限于附加一行文本,如果剪贴板包含多于一行,则默认在所选行的末尾添加一个逗号。

编辑:

为了更进一步,这里的版本提供了一个对话框,提示输入将附加到选择中的每一行的字符串:

#!/bin/bash
r=$(CocoaDialog inputbox --title "String to be appended to EOL" \
   --informative-text "Enter string:" \
   --button1 "Okay" --button2 "Cancel")

[[ $(head -n1 <<<"$r") == "2" ]] && exit_discard

r=$(tail -n1 <<<"$r")

sed "s/$/$r/"
Run Code Online (Sandbox Code Playgroud)