GNU/Linux >> Linux の 問題 >  >> Linux

タブ区切りファイルにヘッダーを追加する

個人的には nano -w file.txt を選びます;-) (つまり、テキスト エディタを使用してください。もちろん、nano である必要はありません)

しかし、何らかの理由で非インタラクティブな環境でこれを行いたい場合は、 cat を使用できます あらゆる種類の連結:

echo $'name\tage\tuniversity\tcity' | cat - file.txt > file2.txt

ヘッダーを先頭に追加し、出力を file2.txt に配置します .元のファイルを上書きしたい場合は

echo $'name\tage\tuniversity\tcity' | cat - file.txt > file2.txt; mv file{2,}.txt

または、 sed を使用できます 次のように:

sed -i $'1 i\\\nname\tage\tuniversity\tcity' file.txt

$'...' を使用していることに注意してください \t を使用できるようにするための引用 タブと \n を表す 改行を表す (他の置換の中でも、詳細については bash の man ページを参照してください)。このタイプの引用符付き文字列では、\\ リテラルのバックスラッシュを表します。したがって、sed に渡されるプログラムは実際には

1 i\
name    age     university      city

"append" 演算子 >> のような "prepend" 演算子はありません 、ただし、ヘッダーを一時ファイルに書き込み、その後ファイルの内容を一時ファイルにコピーして、元に戻すことができます:

echo -e "name\tage\tuniversity\tcity" | cat - yourfile > /tmp/out && mv /tmp/out yourfile

$ { printf 'name\tage\tuniversity\tcity\n'; cat orig-file; } > new-file

または

$ printf '1\ni\nname\tage\tuniversity\tcity\n.\nw\n' | ed -s orig-file

Linux
  1. タブ区切りファイルのソート

  2. ファイル名に先行ゼロを追加する Linux シェル スクリプト

  3. Bash:改行なしでファイルの末尾に文字列を追加します

  1. Bashでファイルが空かどうかを確認するには?

  2. ISO8859-15をUTF8に変換するには?

  3. すべてのファイル拡張子を小文字に変換する

  1. テキストファイルのn番目の列を取る

  2. パイプ区切りファイルのタイムスタンプを再フォーマットする

  3. ldapsearch パスワード ファイル形式