Использование Perl One liner (конечно, довольно долго !!).
Я понимаю, что «ближайший» означает самый короткий между входом в любом направлении.То есть, если у вас есть 2 файла, Oct-1st.txt и Oct-30.txt, и если на входе указано значение Oct-20, то файл Oct-30 будет выводом
$ ls -l *2018*gz
-rw-r--r-- 1 xxxx xxxx 0 Oct 17 00:04 20180915_2210.tar.gz
-rw-r--r-- 1 xxxx xxxx 0 Oct 17 00:04 20180925_0414.tar.gz
-rw-r--r-- 1 xxxx xxxx 0 Oct 17 00:04 20181004_0719.tar.gz
-rw-r--r-- 1 xxxx xxxx 0 Oct 17 00:04 20181009_0910.tar.gz
$ export input=20180922_1020
$ perl -ne 'BEGIN { @VAR=@ARGV; $in=$ENV{input}; $in=~s/_//g;foreach(@VAR) {$x=$_;s/.tar.gz//g;s/_//g;s/(\d+)/abs($1-$in)/e;$KV{$_}=$x};$res=(sort keys %KV)[0]; print "$KV{$res}"} ' 2018*gz
20180925_0414.tar.gz
$ export input=20180905_0101
$ perl -ne 'BEGIN { @VAR=@ARGV; $in=$ENV{input}; $in=~s/_//g;foreach(@VAR) {$x=$_;s/.tar.gz//g;s/_//g;s/(\d+)/abs($1-$in)/e;$KV{$_}=$x};$res=(sort keys %KV)[0]; print "$KV{$res}"} ' 2018*gz
20180915_2210.tar.gz
$
Надеюсь, этопомогает!