我有如下所示的 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"