web-dev-qa-db-ja.com

TSVファイルで文字列を分割する方法

次のようなTSVファイルがあります。

abc_1
def_2
ghi_3
jkl_4
mno_5

それを次のように分割したいと思います。

abc 
def 
ghi 
jkl
mno

そして

1
2
3
4
5

どうすれば入手できますか?

2
Lulu' Nisrina

方法1

文字位置で分割:

最初の出力(ここでは、出力はfirst_outputというファイルにリダイレクトされます)を取得するには、次のコマンドを使用します。

cut -c1-3 your_input_file >first_output

2番目の出力を取得するには、以下を使用します。

cut -c5- your_input_file >second_output

ここで、オプション-cは、「指定された文字のみを選択する」ことを意味します。オプション-cに続くリストは、文字の位置または範囲を指定します(1は行の最初の文字です)。

方法2

区切り文字に従って分割:

cut -f1 -d_ your_input_file >first_output
cut -f2 -d_ your_input_file >second_output

ここで、オプション-dは区切り文字(この場合は_)を示し、オプション-fは選択するフィールド位置を示します。

4
FedonKadifeli

awkの場合:

awk -F_ '{ print $1 > "file_1"; print $2 > "file_2" }' source_file