ファイルがあるとしましょう。
ファイル1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
ファイル2私が欲しいもの:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
File1の行から列への変換。
答え1
tr
繰り返される各空白文字()を単一の改行文字()に置き換えるために使用します
\n
。
tr -s ' ' '\n'< infile > outfile
ところで、あなたもこのようなことをしたいと思いますか?
オリジナル | 変える |
---|---|
0 1 2 3 |
0a # |
私たちはできますawk
:
awk '{ for (i=1; i<=NF; i++) RtoC[i]= (i in RtoC?RtoC[i] OFS :"") $i; }
END{ for (i=1; i<=NF; i++) print RtoC[i] }' infile
これは、それぞれの同じフィールド番号の位置を連結し、END
結果(たとえば、最初の列の最初の行、2番目の列の2番目の行など)を印刷します。もちろん、入力ファイルはメモリサイズに制限されます。
答え2
次のコマンドを使用することもできますfmt
。
~$ cat f
PAPER TEAM MANISH NISHA GARIMA JYOUTI
~$ fmt -1 f
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
答え3
そしてGNUデータの混合:
$ datamash -W transpose <file
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
答え4
以下を使用して、awk
出力フィールド区切り記号(OFS
)をレコード(行)区切り記号(RS
)に設定します。
awk '{OFS=RS;$1=$1}1' file > file2