替换部分字符串

2024-04-24 05:11:29 发布

您现在位置:Python中文网/ 问答频道 /正文

其实我的问题很简单: 我有这样一个字符串:101222_1_1_ab; 我希望把它改成:101222_1_ab_1

我应该使用什么bash命令?在python中做什么? 谢谢


Tags: 字符串命令bashab
3条回答

这可能适合您:

# echo "101222_1_1_ab" | sed -re 's/(_[^_]+)(_.*)$/\2\1/'
101222_1_ab_1
echo 101222_1_1_ab | sed -r -e 's/(.*_.*_)(.*)_(.*)/\1\3_\2/'

我能想到的最简单的机制是使用awk(1)

$ echo 101222_1_1_ab | awk -F_ '{print $1 "_" $2 "_" $4 "_" $3;}'
101222_1_ab_1

-F_要求awk(1)在下划线上拆分字段。你知道吗

更新格伦·杰克曼推荐以下更清晰的版本:

awk -F_ -v OFS=_ '{print $1, $2, $4, $3}'

相关问题 更多 >