wcr*_*221 3 linux bash shell sed
我有一个文件列表,每个文件都包含在自己的行中。每个文件名的长度可变,n但每个文件的最后 7 个字符是特定标识符。我想弄清楚如何删除每行最后 7 个字符之前的所有字符。我认为使用 sed 命令可以做到这一点,并对 google 和 sed 手册页进行了研究。但是,我只找到了显示如何格式化 sed 以删除n每行中最后一个字符的资源,具体操作如下:
sed 's/.\{n\}$//'
Run Code Online (Sandbox Code Playgroud)
我对 bash 相当陌生,无法找到有效的资源来了解如何格式化 sed 命令。有谁知道如何更改此命令以仅打印每行的最后 7 个字符。
您可以cut使用rev:
rev file | cut -c -7 | rev
Run Code Online (Sandbox Code Playgroud)
或与awk:
awk '{print (substr($0,length($0)-7+1))}' file
Run Code Online (Sandbox Code Playgroud)