"firstname lastname"の形式でファイルから読み込まれる文字列があります。私はその文字列を分割して、2つの別々の変数$first
と$last
に入れたいと思います。これを行う最も簡単な方法は何ですか?文字列をbashの2つの変数に分割するにはどうすればよいですか?
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"
+3
また、変数に既に値がある場合は、 'set - $ variable;最初= $ 1;最後= $ 2 – tripleee
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
と等価であることを考えることですが、これはそうではありません:パイプ内のリードコマンドが別々のサブシェルで実行されるので、値が失われます一度read
が完了します。
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. 文字列をPerlで2つの部分に分割するにはどうすればよいですか?
- 2. 8文字列を4つの変数に分割するにはどうすればよいですか?
- 3. バッチで文字列を複数の変数に分割するにはどうすればよいですか?
- 4. 文字列をiOSの部分文字列に分割するにはどうすればよいですか?
- 5. 文字列を3つの部分に分割するにはどうすればよいですか?
- 6. 文字列[]に文字列を分割するにはどうすればよいですか?
- 7. JavaScriptで複数の部分文字列のうちの最初の文字列に文字列を分割するにはどうすればよいですか?文字列を分割:されて、私は "ABC" に "ABC" と "defbarghi" とs2にS1を分割し、 "defooghi" するにはどうすればよい
- 8. 文字列を " - "で始まる部分に分割するにはどうすればよいですか?
- 9. 2つの文字列変数を比較するにはどうすればよいですか?
- 10. 最初のスペースで文字列を分割し、文字列を異なる変数に委託するにはどうすればよいですか?
- 11. コンマ区切り文字列をテキストファイルに分割して、各文字列を別の変数に保存するにはどうすればよいですか?
- 12. 数字と文字列を文字列配列からどのように分割するのですか?
- 13. Excel VBAで文字列をlong()型配列に分割するにはどうすればよいですか?
- 14. 数字を含む文字列を分割するにはどうすればいいですか
- 15. Bash文字列を英数字で、アンダースコアなしにするにはどうすればよいですか?
- 16. C#で単語の文字を配列に分割するにはどうすればよいですか?
- 17. 複数の行に2つの文字列を追加するにはどうすればよいですか?
- 18. スカラ:文字列を2つの整数に分割する
- 19. 時間をbashの文字列/数字と比較するにはどうすればよいですか?
- 20. このように2つの文字列を比較するにはどうすればよいですか?
- 21. LINQの使用中に分割文字列にアクセスするにはどうすればよいですか?
- 22. Python:文字列分割に区切り文字を含めるにはどうすればいいですか?
- 23. 3番目の出現時に文字列を分割するにはどうすればよいですか?
- 24. Rの文字列をalist()に分割するにはどうすればよいですか?
- 25. 文字列変数をxcodeの文字列と比較するにはどうすればよいですか?
- 26. 1つの文字を文字列に変換するにはどうすればよいですか?
- 27. チタンの文字列をどのように分割(分割)できますか?
- 28. リストを2つの列に分割するにはどうすればよいですか?
- 29. この文字列を範囲で分割するにはどうすればよいですか?
- 30. 送信前にフォームで文字列分割を実行するにはどうすればよいですか?
ない権利アプローチ(と動作しません) – Sorpigal
うーん...私は私のUNIXツールの本を再読み込みする必要があるように見えます、それは実際に動作しません、私はちょうど私の記憶にあるものを書いた。申し訳ありません... – LeleDumbo