Linuxファイル管理に関する今日のチュートリアルでは、ファイル内の複数の行を1行に結合するための有効なアプローチを見ていきます。この記事の終わりまでに、Linuxファイル管理エクスペリエンスにいくつかのコンピューティングマイルストーンを追加することになります。
[あなたも好きかもしれません:Linuxで2つのテキストファイルを結合する方法]
コマンドラインインターフェイスを介してLinuxオペレーティングシステムを悪用するユーザーの可能性/機会は無限にあります。そのような可能性の1つは、一連のLinuxコマンドを介して複数行のファイルを1行のファイルに操作することです。このような行をマージする目的は、ターゲットファイルにカスタム区切り文字を追加する必要があるのと同じくらい簡単です。
問題の説明
このチュートリアルでは、ターゲットファイルの複数行を1行にマージすることに焦点を当てているため、参照用にそのような種類のファイルを作成し、複数行のデータを入力する必要があります。
$ sudo nano sample_file.txt

上記のスクリーンキャプチャに従って、ファイル( sample_file.txt )を処理しています。 )6行で、これらの6行を結合する方法は3つあります。
- 区切り文字なし: I GenuinelyLoveLinuxShellTipsTutorials!
- 1文字の区切り文字付き: I Genuinely、Love、Linux.Shell、Tips、Tutorials!
- 複数の文字の区切り文字を使用: I Genuinely; Love; Linux; Shell; Tips; Tutorials!
ファイル内の複数の行を1つの行に結合する方法
Linuxでファイル内の複数の行を1つの行に結合するためのこれらの3つのアプローチを見てみましょう。
1。 sedコマンドの使用
sedの力 テキスト処理コマンドラインユーティリティを使用すると、ほぼ同じコード構文を参照して上記の3つのアプローチに対処することで、サンプルテキストファイルの6行を結合できます。
区切り文字なし:
$ sed ':a; N; $!ba; s/\n//g' sample_file.txt
間隔あり:
$ sed ':a; N; $!ba; s/\n/ /g' sample_file.txt
単一文字の区切り文字を使用する例:カンマ:
$ sed ':a; N; $!ba; s/\n/,/g' sample_file.txt
複数文字の区切り文字を使用する例:セミコロンと空白:
$ sed ':a; N; $!ba; s/\n/; /g' sample_file.txt

2。 awkコマンドの使用
Linuxのawk コマンドは、もう1つの信頼できるテキスト処理コマンドラインツールです。マルチラインからシングルラインの問題を解決するためのアプローチは、次の方法で分析および実装できます。
区切り文字なし:
$ awk -v d="" '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
間隔あり:
$ awk -v d="" '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
単一文字の区切り文字を使用する例:カンマ:
$ awk -v d="," '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
複数文字の区切り文字を使用する例:セミコロンと空白:
$ awk -v d="; " '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt

3。貼り付けコマンドの使用
貼り付け コマンドは、区切り文字なし、間隔あり、および単一文字の区切り文字を使用して複数の行を結合する場合にのみ理想的です。このユーティリティはGNUCoreutilsの下にあります したがって、パッケージはすべてのLinuxOSディストリビューションで利用できます。
区切り文字なし:
$ paste -sd '' sample_file.txt
間隔あり:
$ paste -sd '' sample_file.txt
単一文字の区切り文字を使用する例:アンダースコア:
$ paste -sd '_' sample_file.txt
末尾の下線(_)
貼り付けコマンドをsedコマンドにパイプすることで削除できます:
$ paste -sd '_' sample_file.txt | sed 's/_$/\n/'
このアプローチは、次のような不規則な出力のため、セミコロンや空白などの複数の文字の区切り文字では理想的ではありません。
$ paste -sd '; ' sample_file.txt

4。 trコマンドの使用
trコマンド 区切り文字なし、間隔あり、単一文字の区切り文字で複数の行を結合する場合にも理想的です。
区切り文字なし:
$ tr -d '\n' < sample_file.txt
間隔あり:
$ tr '\n' ' ' < sample_file.txt
単一文字の区切り文字を使用する例:カンマ:
$ tr '\n' ',' < sample_file.txt
出力をsedコマンドにパイプして、余分なコンマを取り除きます。
$ tr '\n' ',' < sample_file.txt | sed 's/,,$/\n/'

Linuxでファイル内の複数の行を1つの行に結合する方法を正常に学習しました。