3ks*_*stc 23 shell bash sed text-processing
我有一个想要操作的字符串。字符串是H08W2345678
我如何能够操作它以便输出只是W2345678
?
同样,如果我想删除最后 4 个字符H08W2345678
以便我知道我将H08W234
如何执行此操作?
jas*_*yan 34
只需使用 bash (或ksh93
该语法来自 或 的地方zsh
):
string="H08W2345678"
echo "${string:3}"
W2345678
echo "${string:0:-4}"
H08W234
Run Code Online (Sandbox Code Playgroud)
有关字符串操作的更多信息,请参阅 Wooledge wiki 。
hee*_*ayl 13
$ echo "H08W2345678" | sed 's/^.\{3\}//'
W2345678
Run Code Online (Sandbox Code Playgroud)
sed 's/^.\{3\}//'
将找到前三个字符^.\{3\}
并替换为空白。Here^.
将匹配字符串开头的任何字符(^
表示字符串的开头),\{3\}
并将匹配前一个模式精确 3 次。所以,^.\{3\}
将匹配前三个字符。
$ echo "H08W2345678" | sed 's/.\{4\}$//'
H08W234
Run Code Online (Sandbox Code Playgroud)
同样,sed 's/.\{4\}$//'
将最后四个字符替换为空白($
表示字符串的结尾)。
如何从字符串前面“删除”/删除字符?
我有一个想要操纵的字符串。该字符串是 H08W2345678 我如何才能操作它,以便输出只是 W2345678?
echo "H08W2345678" | cut -c 4-
Run Code Online (Sandbox Code Playgroud)
同样,如果我想删除 H08W2345678 中的最后 4 个字符,以便得到 H08W234,我该怎么做?
echo "H08W2345678" | cut -c -7
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57578 次 |
最近记录: |