回答
使用sed的,你可以這樣做:概念
s='0x2aab3f439000'
sed 's/.\{4\}$/:&/' <<< "$s"
0x2aab3f43:9000
謝謝你是最好的! –
+1 sed-fu。 :) – zx81
RESULT="$(\
echo -n $ORIG | head -c $(($(echo -n "$ORIG" | wc -c) - 4)) && \
echo -n : && \
echo -n $ORIG | tail -c 4 \
)"
證明:
[email protected] ~$ ORIG="hello world"
[email protected] ~$ RESULT="$(\
> echo -n $ORIG | head -c $(($(echo -n "$ORIG" | wc -c) - 4)) && \
> echo -n : && \
> echo -n $ORIG | tail -c 4 \
>)"
[email protected] ~$ echo "$RESULT"
hello w:orld
有這樣做當然是更優雅的方式,但爲了清晰起見,很難打敗它。
抱歉的人,但調用3個外部程序(head,wc,tail)4x分叉子不是一個非常有效的方法...;) – jm666
@ jm666「Effective」是一個相對術語。這是我想到的第一種方式。以另一種方式思考將需要更多的時間比將被保存。如果我想節約資源,首先我不會使用bash。如果我只需要在腳本中添加一個冒號,那麼無論如何,這段代碼的自明性(對我來說)會比浪費時間查看sed或awk文檔更好。 –
@ jm666否則,我同意你的看法。如果您正在瀏覽一個文件並需要執行此操作10,000次,那麼我的解決方案就不太好。雖然它肯定會緩存友好, 'wc','head'和'tail'都是小程序。 –
$ s=0x2aab3f439000
$ echo "${s:0:(${#s}-4)}:${s:(-4)}"
0x2aab3f43:9000
替代(從格倫傑克曼):
echo "${s%????}:${s: -4}"
+1僅適用於bash。這更可讀:'echo「$ {s%????}:$ {s:-4}」' –
a=0x2aab3f439000
echo ${a:0:-4}:${a#${a:0:-4}}
輸出:
0x2aab3f43:9000
的其它純bash的答案:
sh$ V=0x2aab3f439000
sh$ echo ${V::(-4)}:${V:(-4)}
0x2aab3f43:9000
- 1. 在鏈接末尾插入字符串
- 2. 的bash腳本 - 從字符串末尾除去尾隨字符
- 3. 如何在字符串的末尾附加一個字符?
- 4. 字符串將第一個單詞移至字符串末尾
- 5. 替換字符串末尾的字符?
- 6. 在單詞的末尾放置一個字一個字符串
- 7. 從字符串的末尾減去一個字符
- 8. 從字符串末尾刪除字符
- 9. 從字符串末尾刪除多個非字母字符
- 10. 如何在python中每行字符串的末尾添加一個字符串?
- 11. Bash:在文件末尾添加一個隨機字母數字字符串
- 12. EditText末尾的字符串
- 13. UrlEncode .net在字符串末尾添加%00個字符
- 14. 字符串在另一個字符串內的文本的末尾
- 15. htaccess刪除字符串末尾的多個字符
- 16. 刪除每個字符串末尾的特定字符
- 17. 在Javascript中的字符串的開始和結尾處插入一個字符
- 18. 在Response.Write()字符串中插入一個var字符串
- 19. 如何在另一個字符串中插入字符串?
- 20. 從字符串末尾刪除n個字符
- 21. PHP:從字符串末尾獲得第n個字符
- 22. 如何在C中的字符串中插入一個字符?
- 23. 在SQL中的字符串的開頭插入一個字符
- 24. 提取字符串在bash中的另一個字符串?
- 25. 在另一個字符串的開頭插入字符串
- 26. 在字符串中插入字符串
- 27. 在字符串中插入字符串
- 28. 在字符串數組中的所有字符串的每個字符之間插入一個字符
- 29. 從字符串數組中的字符串末尾刪除「,」
- 30. 在字符串末尾的Python單獨匹配字符串
如果這將會是一個文件,那麼你可以使用SED,但如果它只是一個字符串變量,那麼你就可以輕鬆地嘗試:A = 0x2aab3f439000;後綴= 「:9000」;一個= $ {A} $ {後綴}; echo $ a; #這個假設你知道後綴變量的值。 –