我有一个 python 脚本,它复制在 gedit 中打开的文本文件的完整路径:
#!/usr/bin/env python3
import subprocess
import sys
name = subprocess.check_output(["xdotool", "getactivewindow", "getwindowname"]).decode("utf-8").strip()
if all(["(" in name, ")" in name]):
path = name[name.find("(")+1:name.find(")")]
if sys.argv[1] == "-file":
fname = name[:name.find("(")]
elif sys.argv[1] == "-path":
fname = ""
command = f"echo \"{path}/{fname}\" | tr -d '\\n' | sed 's/.$//' | xclip -selection clipboard"
subprocess.Popen(["/bin/bash", "-c", command])
但结果没有用引号引起来:我得到/path/to/file
而不是"path/to/file"
我应该如何编辑脚本以获取引号内的结果?
答案1
我已经使用以下 bash 脚本得到了我需要的东西:
#!/bin/bash
path=$(xdotool getactivewindow getwindowname | grep -oP '\(\K[^)]+')
path2="${path/#\~/$HOME}"
filename=$(xdotool getactivewindow getwindowname | cut -d"(" -f1 | rev | cut -c2- | rev)
echo "\"$path2/$filename"\" | tr -d '\n' | xclip -selection clipboard
我确切地得到了文本文件的完整路径,用引号引起来,例如:
"/home/dave/Documents/text file"