 93dcba59de
			
		
	
	
		93dcba59de
		
			
		
	
	
	
	
		
			
			The first grep in the original script will return "binary file matches" if there are NUL characters in PS1, e.g, emojis. The added line gets rid of NUL characters.
		
			
				
	
	
		
			14 lines
		
	
	
		
			669 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			14 lines
		
	
	
		
			669 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # Using external pipe with st, give a dmenu prompt of recent commands,
 | |
| # allowing the user to copy the output of one.
 | |
| # xclip required for this script.
 | |
| # By Jaywalker and Luke
 | |
| tmpfile=$(mktemp /tmp/st-cmd-output.XXXXXX)
 | |
| trap 'rm "$tmpfile"' 0 1 15
 | |
| sed -n "w $tmpfile"
 | |
| sed -i 's/\x0//g' "$tmpfile"
 | |
| ps1="$(grep "\S" "$tmpfile" | tail -n 1 | sed 's/^\s*//' | cut -d' ' -f1)"
 | |
| chosen="$(grep -F "$ps1" "$tmpfile" | sed '$ d' | tac | dmenu -p "Copy which command's output?" -i -l 10 | sed 's/[^^]/[&]/g; s/\^/\\^/g')"
 | |
| eps1="$(echo "$ps1" | sed 's/[^^]/[&]/g; s/\^/\\^/g')"
 | |
| awk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" "$tmpfile" | xclip -selection clipboard
 |