加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – Perl从命令行脚本打印单引号

发布时间:2020-12-15 22:03:00 所属栏目:安全 来源:网络整理
导读:下列 echo text | perl -lnE 'say "word: $_t$_"' 版画 word: text text 我需要 word: 'text' 'text' 尝试: echo text | perl -lnE 'say "word: '$_' '$_'";' #didn't worksecho text | perl -lnE 'say "word: '$_' '$_'";' #neither 如何正确地逃避bash
下列

echo text | perl -lnE 'say "word: $_t$_"'

版画

word: text  text

我需要

word: 'text'    'text'

尝试:

echo text | perl -lnE 'say "word: '$_' '$_'";' #didn't works
echo text | perl -lnE 'say "word: '$_' '$_'";'     #neither

如何正确地逃避bash的单引号?

编辑:

想要准备一个带有几行mv的shell脚本(用于检查,然后才真正重命名文件),例如试图解决以下问题:

find . type f -print | 
perl 
  -MText::Unaccent::PurePerl=unac_string 
  -MUnicode::Normalize=NFC -CASD 
  -lanE 'BEGIN{$q=chr(39)}$o=$_;$_=unac_string(NFC($_));s/[{}()[]s|]+/_/g;say "mv $q$o$q $_"' >do_rename

例如来自文件名,如:

Somé filénamé ?? (1980) |Full |Movie| Streaming [360p] some.mp4

想要在文件do_rename中获得以下输出

mv 'Somé filénamé ?? (1980) |Full |Movie| Streaming [360p] some.mp4' Some_filename_CZ_1980_Full_Movie_Streaming_360p_some.mp4

并且在手动检查后想要运行:

bash do_rename

用于运行实际重命名…

解决方法

您可以使用ASCII代码39’以避免逃脱地狱,

echo text | perl -lnE 'BEGIN{ $q=chr(39) } say "word: $q$_$qt$q$_$q"'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读