こんにちは。 row1データを取得して列に入れ、row2でも同じことを行い、列を拡張したいと思います。
前任者:
これ
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21
これに関して
1
2
3
4
5
6
7
8
9
10
...
Bashでどうすればいいですか?
ありがとうございます。
答え1
GNUでは、grep
次のことができます。
grep -Eo '\S+'
1行に+
1つ以上の空白以外の文字()のすべてのシーケンスを印刷します。\S
答え2
いくつかの追加オプション:
を使用
awk
し、出力フィールド区切り文字を改行文字に設定します。awk '{NF+=0} 1' OFS='\n' file
使用
rs
(アル字型金利Shape) 出力列数を設定するユーティリティ1
(0
行数は「必要数」を示す)rs 0 1 < file
答え3
一連のスペースを改行文字に置き換えるのが最も簡単なようです。
tr
これを行うことができます(-s
コアは次のとおりです)。
$ tr -s ' ' '\n' < file.txt
最初の行は前にスペースがあるため空白です1
。
またはGNU sedを使用してください。
sed -E -e 's/^ +//; s/ +$//; s/ +/\n/g' < file.txt
最初の 2 つの置換項目は、偽の空行を防ぐために、各行の先頭と末尾のスペースを削除します。
(これが機能するにはGNU sedが必要です\n
。)