質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

1142閲覧

cat file1 file2 というコマンドで二つのファイル結合するコマンドを作りたい Linux

ghostpascal

総合スコア6

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2020/06/30 08:34

cat file1 file2 というコマンドで二つのファイル結合するコマンドを作りたいのですがコマンドが引数に二つのファイルを渡す方法がわからないです。

作りたいコマンド
[#!bin/bash
cat file1 file2 | sort | uniq -D | uniq

というコマンドです

file1,file2のところに入るものが何なのかわかりません。

cat 〇 △ | ..... の〇、△に入る部分を教えてください。実行は./コマンド名 file1 file2のようにしたいです**

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2020/06/30 08:49 編集

catって、もともと複数のファイルを連結(結合)するコマンドですが?
ghostpascal

2020/06/30 08:57

もともとはわかりませんが結合はできるみたいです
cateye

2020/06/30 09:13 編集

>結合はできる・・・ではなくて、結合するコマンドです。 参考→https://www.atmarkit.co.jp/ait/articles/1602/25/news034.html 見るだけなら、lessでもmoreでも・・・
guest

回答3

0

引数を単純に参照するだけなら「$1」「$2」「$3」…を指定します。
以下、一応引数が少なくとも2つあることのチェックも入れた例です。

#! /bin/sh if [ $# -lt 2 ] ; then echo 'エラー: 少なくとも2つの引数を指定しなければいけません' exit 1 fi cat $1 $2 | sort | uniq -D | uniq

※追記

引数がいくつでも良いのなら「$*」を使えば、引数をシェルスクリプトの特定位置に置き換えて渡すことが出来ます。

#! /bin/sh cat $* | sort | uniq -D | uniq

投稿2020/06/30 08:49

編集2020/06/30 08:58
hidezzz

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ghostpascal

2020/06/30 09:31

出来ました!ありがとうございました!
guest

0

ベストアンサー

$1:1つめの引数
$2:2つめの引数
なので、下記でいいと思います。

bash

1#!/bin/bash 2cat $1 $2

投稿2020/06/30 08:48

hakoritenshi

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ghostpascal

2020/06/30 08:56

その通りにやって、コマンドを実行してみたのですが-bash: ./makeboth: bin/bash: bad interpreter: No such file or directory とでます。(makebothはコマンド名です)
hidezzz

2020/06/30 09:01

shbang(スクリプトの1行目の記述)が間違っていませんか? 「#! bin/bash」となっているのなら(先頭の「/」が抜けている)「#! /bin/bash」としてください。
ghostpascal

2020/06/30 09:30

/抜けてました!ありがとうございました!
guest

0

cat file1 file2 で両方のファイルの内容が続けて出力されます。 cat file1 file2 > output のようにすれば結合したファイルができるかと思います。

投稿2020/06/30 08:47

Udomomo

総合スコア1524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問