私が実行すると、\ls | xargs -I {} echo {} | sed 'N;s/\n/xxxxxxxxx/'
次のような結果が得られます。
- Books aliasxxxxxxxxxA New Kind of Science
Computability-and-Logic.pdfxxxxxxxxxComputability-and-Logic_k2opt.pdf
Hein J. L. - Prolog Experiments in Discrete Mathematics, Logic, and Computability (2005).pdfxxxxxxxxxHein J. L. - Prolog Experiments in Discrete Mathematics, Logic, and Computability (2005)_k2opt.pdf
How Automated Recommendations Affect the Playlist Creation Behavior of Users.pdfxxxxxxxxxHow Automated Recommendations Affect the Playlist Creation Behavior of Users_k2opt.pdf
Lumanote- A Real-Time Interactive Music Composition Assistant.pdfxxxxxxxxxgeMsearch- Personalized Explorative Music Search.pdf
research_report_dc_02.pdfxxxxxxxxxresearch_report_dc_02_k2opt.pdf
thebookofshaders.pdfxxxxxxxxxthebookofshaders_k2opt.pdf
出力が次のような理由を理解できません。
- Books aliasxxxxxxxxxA New Kind of SciencexxxxxxxxxComputability-and-Logic.pdfxxxxxxxxxComputability-and-Logic_k2opt.pdfxxxxxxxxxHein J. L. - Prolog Experiments in Discrete Mathematics, Logic, and Computability (2005).pdfxxxxxxxxxHein J. L. - Prolog Experiments in Discrete Mathematics, Logic, and Computability (2005)_k2opt.pdfxxxxxxxxxHow Automated Recommendations Affect the Playlist Creation Behavior of Users.pdfxxxxxxxxxHow Automated Recommendations Affect the Playlist Creation Behavior of Users_k2opt.pdf
ベストアンサー1
$ seq 10 | sed 'N;s/\n/+/'
1+2
3+4
5+6
7+8
9+10
N
パターンスペースに次の行を追加し、s
2つの行を結合して+
からsed
その行を印刷し、次の入力行(行3と4が+
結合される場所)のスクリプトを繰り返します。
あなたはする必要があります
$ seq 10 | sed 'N;N;N;N;N;N;N;N;N;s/\n/+/g'
1+2+3+4+5+6+7+8+9+10
または、sedスクリプトでループを使用してすべての行を連結します。
$ seq 10 | sed -e :1 -e '$!N;s/\n/+/;t1'
1+2+3+4+5+6+7+8+9+10
入力全体がパターン空間に吸収されるため、大容量ファイルに合わせて拡張されません。
文字区切り文字を使用して行を連結するには、以下を使用できますpaste
。
$ seq 10 | paste -sd + -
1+2+3+4+5+6+7+8+9+10
入力全体をメモリにロードしないマルチ文字区切り文字の場合:
$ seq 10 | awk -v sep=-+- -vORS= 'NR>1 {print sep}; 1; END {if (NR) print RS}'
1-+-2-+-3-+-4-+-5-+-6-+-7-+-8-+-9-+-10