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命令,以某种方式获取输入(因此它知道要追加的文本)?
(我尝试这样做已被证明是不成功的)
将其弹出到文本包中的命令中,它将把剪贴板中的任何内容附加到已选择的所有行的末尾:
#!/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)
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |