获取unix文件名的前5个字符

获取unix文件名的前5个字符

我有如下所示的 Unix 文件名,我需要提取文件名的前 5 个字符。我知道您可以使用 cut 来提取字段内容,但我正在寻找获取文件的前 5 个字符。

abc12345
def12345
ghi12345

我期望的输出是:

abc12
def12
ghi12

答案1

使用 shell 的字符串操作函数

您尚未指定要在哪个脚本上下文中使用它,所以我将给您一个通用示例:

假设 shell 变量$x保存字符串abc12345${x:0:5}则将表示 的前 5 个字符$x,即abc12

答案2

符合 Posix 的cut还可以按字符(或字节,这在 UTF-8 中不是同一件事)进行剪切:

cut -c-5

或者

cut -b-5

分别

答案3

假设您想要文件名的前 5 个字符:
正如您所说的字符,cut通常不起作用,因为它会减少字节。但如果它恰好是五个字符,则可以使用
POSIX 可移植的,如下所示:${var#?????}

filename='def12345'
result=${filename%"${filename#?????}"}
echo "$result"

相关内容