我正在尝试使用 perl oneliner 在 unix 命令行管道中使用正则表达式匹配来打印字符串。
ls -l /APPL
给出输出
lrwxrwxrwx 1 root system 4 Nov 27 12:07 /APPL -\> /PRD
我的目标是打印'PRD'
我正在使用的命令
ls -l /APPL | perl -ne 'print "$1\\n" if / \/APPL\s\S+\s\s\/(\S+)\s/'
我正在使用正则表达式调试器https://regex101.com/跟踪它,看起来它在\/ (\S+)\s处丢失了它
readlink我在没有命令行实用程序的系统上使用 AIX 。我知道我可以使用 awk,但这里不是这种情况。
打印符号链接的值:
readlink /APPL
Run Code Online (Sandbox Code Playgroud)
perl -le'print readlink( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)
转换为绝对路径,并解析所有符号链接(如果有):
readlink -e /APPL
Run Code Online (Sandbox Code Playgroud)
perl -MCwd=abs_path -le'print abs_path( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)
perl -le'use Cwd qw( abs_path ); print abs_path( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)