【问题标题】:find and create hard link with regex in different path在不同的路径中使用正则表达式查找并创建硬链接
【发布时间】:2015-01-07 04:51:28
【问题描述】:

下面的脚本找到一个文件,然后在目标路径中创建一个硬链接。

find /path/to/files -name "example" -exec ln {} /path/to/destination/ \;

我想使用以下方法创建链接

'y/./ /; s/[()]//g; s/^([^0-9]+)([0-9]+).*\s([a-z0-9]+)$/\1(\2).\3/;'

我已经尝试了几个小时了。但没有成功。

【问题讨论】:

    标签: regex sed find ln


    【解决方案1】:

    将这些行放在 perl 文件中并在 find 中运行可能会更简单。您将很难在 -exec 的命令行上运行它,并需要进行多层转义。

    【讨论】:

    • 我想通了。看看我的回答,让我知道你的想法?谢谢!
    • 另外,我赞成您的回答,因为这是非常好的信息。谢谢
    【解决方案2】:

    我想通了!

    new_movie_name=$(find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" -type f -size +500M \! -iname "*sample*" \! -iname "*s[0-9][0-9]*" \! -iname "*e[0-9][0-9]*" \! -iname "*s[0-9][0-9]e[0-9][0-9]*" \! -iname "*s[0-9]e[0-9][0-9][0-9]*" \! -iname "*[0-9]x[0-9][0-9]*" \( -iname "*19[0-9][0-9]*" -o -iname "*20[0-9][0-9]*" \) -exec basename {} \;)
    
    new_movie_directory=$(find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" -type f -size +500M \! -iname "*sample*" \! -iname "*s[0-9][0-9]*" \! -iname "*e[0-9][0-9]*" \! -iname "*s[0-9][0-9]e[0-9][0-9]*" \! -iname "*s[0-9]e[0-9][0-9][0-9]*" \! -iname "*[0-9]x[0-9][0-9]*" \( -iname "*19[0-9][0-9]*" -o -iname "*20[0-9][0-9]*" \) -exec dirname {} \;)
    
    plex_movie_directory="/hdd_bottom-left/plex/movie"
    
    ln "$new_movie_directory/$new_movie_name" "$(echo "$plex_movie_directory/$new_movie_name" | sed -r 'y/./ /; s/[()]//g; s/^([^0-9]+)([0-9]+).*\s([a-z0-9]+)$/\1(\2).\3/;')"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多