Linuxでは、(GNU coreutils)8.13のpaste
に次の問題があります。
デフォルト(TAB)以外の区切り文字を設定しようとすると、定義された区切り文字の最初の文字が出力されるか、完全に無視されます。
質問:使用時にpaste
?
単に使用する、例えばabc-123区切り文字がいいので。 「複数」とは、たとえば1つではなく2つのタブ。
これまでに試した区切り文字を囲むパターンは
--delimiters="\delimiter"
--delimiters='\delimiter'
--delimiters=$"\delimiter"
--delimiters=$'\delimiter'
すべて同じ結果:最初の文字のみが受け入れられるか、完全に無視されます。ショートバージョンも試してみました-d"\"
および複数のインスタンス&ndahs;何も。
また:
--delimiters="\\"
→エラーメッセージ私が望むものではありませんが、完璧に機能するもの:
--delimiters="\n"
→改行--delimiters="\0"
→間に何もない--delimiters="\t"
→ TAB、 デフォルト。すごい。File1とfile2の間にabc
を含めるには、次のようにします。
paste -d abc file1 /dev/null /dev/null file2
または:
paste -d abc file1 - - file2 < /dev/null
2つのタブが必要な場合:
paste file1 /dev/null file2
これは、結合するファイルが2つだけであるためです。区切り文字列の各文字は、各入力ファイルの行の各結合の間に使用されます。
例えば
file1 line1 DELIMCHAR0 file2 line1 DELIMECHAR1 file3 line1 ...
file1 line2 DELIMCHAR0 file2 line2 DELIMECHAR1 file3 line2 ...
...
BSDシステム(私の知る限りLinuxではありません)には、上記のソリューションより高速で短いlam
(「ラミネート」のような)ユーティリティがあります。
lam file1 -s delimiter file2