我有一個字符串從格式爲「firstname lastname」的文件讀入。我想分割該字符串並將其放入兩個單獨的變量$first
和$last
。什麼是最簡單的方法來做到這一點?如何獲取一個字符串並將其分解爲bash中的兩個變量?
2
A
回答
-1
$first=`echo $line | sed -e 's/([^ ])+([^ ])+/\1/'`
$last=`echo $line | sed -e 's/([^ ])+([^ ])+/\2/'`
6
讀取可以進行分割,例如,
read first last < name.txt
echo "$first"
echo "$last"
1
削減可以分割字符串成一個選定的字符分隔的部分:
first=$(echo $str | cut -d " " -f 1)
last=$(echo $str | cut -d " " -f 2)
它可能不是最優雅的方式,但它肯定是簡單的。
5
擴展在FGM的回答,只要你有含有由單個字符,而它們不是任何令牌的一部分分隔的標記字符串,由換行符終止,則可以使用內部字段分隔符(IFS
)和read
來分割它。一些例子:
echo 'John Doe' > name.txt
IFS=' ' read first last < name.txt
echo "$first"
John
echo "$last"
Doe
echo '+12 (0)12-345-678' > number.txt
IFS=' -()' read -a numbers < number.txt
for num in "${numbers[@]}"
do
echo $num
done
+12
0
12
345
678
一個典型的錯誤是認爲read < file
相當於cat file | read
或echo contents | read
,但這種情況並非如此:在管道的讀命令在一個單獨的子shell運行,因此該值將丟失一旦read
完成。爲了解決這個問題,你可以完成所有的操作在同一子shell變量:
echo 'John Doe' | { read first last; echo $first; echo $last; }
John
Doe
,或者如果文本存儲在一個變量,你可以把它重定向:
name='John Doe'
read first last <<< "$name"
echo $first
John
echo $last
Doe
相關問題
- 1. 如何從一個字符串中獲取兩個數字並將其轉換爲一個變量中的int?
- 2. 獲取2個字符串之間的任何字符串並在bash中分配一個變量
- 3. 如何將一個字符串分解爲不同變量
- 4. 如何取我的隨機字符串並將其分配給一個變量?
- 5. 如何分割一個字符串並將其分配給Golang中的變量?
- 6. 如何將一個字符串分爲兩個字符串
- 7. 將字符串拆分爲兩個div,並將其拆分爲字符串php
- 8. 切一個字符串分解成兩個詞中的Bash
- 9. JavaScript將字符串中的兩個變量拆分字符串
- 10. PHP的Unicode字符串提取 - 如何分割一個字符串,並根據第一個非字母字符的位置將其存儲到兩個變量?
- 11. 如何將2個javascript變量合併爲一個字符串
- 12. 將bash變量賦值爲兩個字符串的列表
- 13. 在C++中將兩個字符串合併成一個變量
- 14. 如何將字符串分解爲多個變量
- 15. 如何取一個字符串並將其作爲一個變量...?我甚至不知道如何說這個
- 16. 將一個字符串分解成兩個變量通過分離
- 17. 如何提取bash中兩個字符之間的一部分字符串?
- 18. 如何從字符串中獲取兩個變量?
- 19. 獲取會話變量,並將其設置爲一個變量
- 20. 如何在同一行上取兩個字符串並在python中爲它們分配一個變量?
- 21. 如何爲新變量合併一個字符串和變量
- 22. 將一個字符串解析爲兩個雙重字符串
- 23. 如何爲jsp字符串變量分配一個javascript變量?
- 24. 的Javascript:解析字符串變量分爲兩個變量,一個作爲一個字符串,一個作爲一個整數
- 25. PHP:如果將變量分配給兩個字符串中的一個(如果其中一個爲空),該如何分配變量?
- 26. 如何將兩個字符串的cssText合併爲一個?
- 27. 將一個字符串分解成2個變量
- 28. Bash腳本:如何從一個字符串中創建兩個變量?
- 29. 將數組中的字符串分開並將其分配給2個變量
- 30. android將兩個字符串變量之一分配到另一個類中的一個字符串中
不正確方法(並且不會工作) – Sorpigal 2011-12-15 12:03:38
嗯......看起來我需要重新讀取我的unix工具書,它確實不起作用,我只是寫了我的記憶。對不起...... – LeleDumbo 2011-12-15 16:42:38