2011-10-12 5 views
11

2つのファイルをマージしたいcat file1 file2 > file3。しかし、それは新しい行から始まります。私はそれを望んでいない。 trを使って新しい行をすべてスペースに置き換えることはできますが、置き換えたくないファイルには新しい行があるので、私はそれを行うことはできません。改行なしでcatと2つのファイルをマージする

+1

ですか?私の猫(cygwin上)は、2つのファイルの前後に新しい行を追加しません。 file1またはfile2に新しい行がないのは確かですか? – Kashyap

+0

'file1'と' file2'がどのように見えるのか、 'file3'でどのような出力が必要なのかを明確にすることはできますか?正確にどのような新しい行を出力したいのですか、そして、新しい行はあなたが望まないものですか? –

答えて

14

あなたは-c flagsパラメータとして-1headを使用することができます。この場合、最後の1バイトのコードの最後の1バイト(まで-q

head -c -1 -q file1 file2 > file3 

head -c -1意志出力のすべて - 終了行は - 文句を言わないこと含まれています)。 -qは、ファイル名がfile3にパイプされないように、head複数のファイルを指定すると、デフォルトでheadとなります。


それとも、この答えによって示唆されているように - bash cat multiple files content in to single string without newlines 、パイプそれtrに:

tr -d "\n" 
+0

私は 'tr'オプションが好きです。ありがとう:) –

2

bashで、あなたが行うことができます:

cat <(sed -n '1n;p' file1) <(sed -n '1n;p' file2) 
0

あなたは使用CAのawk:

awk '(FNR>1){print}' file1 file2 

アップデート - どのように動作します:file1file2:我々は2つのファイルを処理するawkを頼む

。条件が(FNR>1)の場合、レコード全体(行)を出力します。 FNRは変数ですdefined as

FNR - 現在の入力ファイルの入力レコード番号です。

したがって、条件(FNR>1)は、各ファイルの最初の行を除いて、常にtrueになります。このようにして、各ファイルの最初の行をスキップします。

+0

誰がこれをupvotedできますか? – kommradHomer

+0

@kommandHomer更新を参照してください –

+1

Er ...私はファイルの*最初の行をスキップしたいと思って何も表示されません... –

関連する問題