6

This is somewhat simple, I presume, but still I cannot figure out how to do it. I have the following function defined:

date +%Y-%m-%d_%H:%M | xclip -selection c

which gets a timestamp and puts it into the clipboard. I mainly want to use this to name files, so I can, for example, go

vi file_2016-02-16_20:10_somemorethings.txt

but when I paste the date in the terminal (with control+shift+V) it already enters the command, so I never get the chance to type _somemorethings.txt. In other words, the last character that xclip saves is the Enter key. This happens everytime I pipe something to xclip or xsel, not only with the function defined above.

I know this sounds like something unimportant, but it would really improve productivity is this little issue could be fixed.

I have tried several options with both xclip and xsel and nothing seems to overcome this. Any ideas? Is this even possible?

edi9999
  • 19,701
  • 13
  • 88
  • 127
TomCho
  • 3,204
  • 6
  • 32
  • 83
  • You could use `tr` for example `date +%Y-%m-%d_%H:%M | tr -d '\n' | xclip -selection c` See this question for more info : http://stackoverflow.com/questions/12524308/bash-strip-trailing-linebreak-from-output – edi9999 Feb 17 '16 at 15:18
  • @edi9999 I can't believe I didn't think of that. If you make an answer I'll accept it. – TomCho Feb 17 '16 at 15:45

2 Answers2

11

You could use tr, for example

date +%Y-%m-%d_%H:%M | tr -d '\n' | xclip -selection c 

See this question for different ways to achieve it: Bash: Strip trailing linebreak from output

edi9999
  • 19,701
  • 13
  • 88
  • 127
2

Just a note for anyone who comes here in the future, the command

date +%Y-%m-%d_%H:%M | xclip -rmlastnl -selection c 

will do the job now.

burnsac
  • 21
  • 2