やりたいこと
1.txtには英語、2.txtには日本語が書いてあるんですが、1.txtの1行目と2.txtの1行目を並べたいんです。
こんな大したことないことでアプリをインストールしたりとかしたくないです。
1.txt
ichiban
niban
sanban
2.txt
いちばん
にばん
さんばん
望んでいる結果
1. ichiban いちばん
2. niban にばん
3. sanban さんばん
ファイル名はこういうかんじに頭に数字がついてたり、名前で並べたとき順に、左から順番につける感じが楽かと思います。
解決法
paste *.txt | cat -n | sed 's/^ *\([0-9]*\)/\1\./' | tr '\t' ' '
これで出てきた結果をコピペして使うなり、ファイルに書きだすなりします。
コメントで教えてもらいました。@Takeruさんありがとうございました。
コメントもらうまで試していたちょっと回り道なやつ
連番のデータを別ファイルに用意して単純にくっつける方法
これはこれで後々応用が効きそうなので消さないでおきます。読みにくければ別の記事に分けるかも。
vim 0.txt
して、30i.(改行)
して、Escキーをおすと.が30回入力される
*30o.でもいいかなって思ったけど、1行目に余計な改行が入るのが今回まずいのでiにしました
0.txt
.
.
.
(30行つづく)
さいごにいっこ余計な改行をBackspace。
:%s/^/\=line('.') . ''/
すると、連番になる
0.txt
1.
2.
3.
(30行つづく)
*C-aのインクリメントでもっとお手軽にできそうだったんですがなんかうまく動きませんでした。
:wq
でvimを保存して終了
あとは以下のコマンドでスペースで句切られて出力されます。
-d オプションを設定しないとタブで区切られます。
paste -d " " *.txt
参考にしました