まずは2ch-Linux-Beginnersを読みましょう。
いろいろとまとめられているので(・∀・)イイ!!
http://www12.atwiki.jp/linux2ch/
読んでも解決しなかったら、質問を書きこむ前にここを読もう。
http://www12.atwiki.jp/linux2ch/?About
質問に対して答えてもらったら、お礼よりも、結果報告。
過去ログ検索
Google検索
https://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=2ch.net%2Ftest%2Fread.cgi%2Flinux%2Fhttps://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=5ch.net%2Ftest%2Fread.cgi%2Flinux%2F
※前スレ
くだらねえ質問はここに書き込め! Part 237
http://mao.5ch.net/test/read.cgi/linux/1563027196/
くだらねえ質問はここに書き込め! Part 238
■ このスレッドは過去ログ倉庫に格納されています
2019/10/04(金) 07:31:02.74ID:Rnyv5utD
153login:Penguin
2019/10/25(金) 09:30:26.11ID:wjgZzngK 現在、cd, ls とか1日でしょっちゅう使うコマンドは.bashrcでヒストリー除外設定してます。
それとは別に、備忘録として次回のログイン時にはヒストリー履歴に必要ないmanとかwho等の単発コマンドや、自作バッチ等をsed用のパターンファイルに収めてあります。
そのファイルを使ってsedで.bash_historyにかけて該当するコマンドを削除して、実行結果自体は正しいと確認できています。
で質問です。
この作業をログアウト時にしたいのですが、.bash_logoutや.logoutに記述しても、ヒストリーのキャッシュから.bash_historyに書き込まれるタイミングが後に来るようで、パターンファイルのコマンドがもどってきます。直前にhistory -wをしてもだめです。
最後のシステムがヒストリーのキャッシュを.bash_historyに吐き出した後に、sed実行できればいいのですが、どのファイルに記述すればいいのでしょうか?
それとは別に、備忘録として次回のログイン時にはヒストリー履歴に必要ないmanとかwho等の単発コマンドや、自作バッチ等をsed用のパターンファイルに収めてあります。
そのファイルを使ってsedで.bash_historyにかけて該当するコマンドを削除して、実行結果自体は正しいと確認できています。
で質問です。
この作業をログアウト時にしたいのですが、.bash_logoutや.logoutに記述しても、ヒストリーのキャッシュから.bash_historyに書き込まれるタイミングが後に来るようで、パターンファイルのコマンドがもどってきます。直前にhistory -wをしてもだめです。
最後のシステムがヒストリーのキャッシュを.bash_historyに吐き出した後に、sed実行できればいいのですが、どのファイルに記述すればいいのでしょうか?
2019/10/25(金) 09:54:17.89ID:ZYt79x2d
しらんけど、.bash_logoutとかで、端末切り離しても終了せずにバックグラウンドで動くスクリプト実行して
1秒後とかにヒストリ消すようにしたら動くんじゃね?しらんけど
1秒後とかにヒストリ消すようにしたら動くんじゃね?しらんけど
2019/10/25(金) 10:19:45.97ID:7I9s5J33
Lubuntu 18.10 烏賊
他のLubuntuには、「ディスク」があるのですが、なぜか自分の烏賊には、hddをフォーマットしたり、領域を操作するためのアプリが見つかりません。
ダウンロードする方法を教えて下さい。
他のLubuntuには、「ディスク」があるのですが、なぜか自分の烏賊には、hddをフォーマットしたり、領域を操作するためのアプリが見つかりません。
ダウンロードする方法を教えて下さい。
2019/10/25(金) 10:44:34.87ID:DsOIalUM
>>153
systemdのサービスファイル書いてExecStopで実行するとか?しらんけど
systemdのサービスファイル書いてExecStopで実行するとか?しらんけど
157login:Penguin
2019/10/25(金) 11:55:37.42ID:h3N5NDxK >>153
ログインのときに、やればいいんじゃないの?
ログインのときに、やればいいんじゃないの?
158login:Penguin
2019/10/25(金) 11:58:56.84ID:h3N5NDxK159login:Penguin
2019/10/25(金) 12:00:11.63ID:fdkloRFW 縦の列を出力するコマンドの結果をパイプを通して横にしたいのですが躓いてます。
例: ls -l hoge | grep -E 'jpg|bmp' | awk{print $9}' | sed 's/\n/ /'
これだと縦のリストままです。 改行をスペースにすればいいと思ったのですが、
標準出力ではだめなのですか?
例: ls -l hoge | grep -E 'jpg|bmp' | awk{print $9}' | sed 's/\n/ /'
これだと縦のリストままです。 改行をスペースにすればいいと思ったのですが、
標準出力ではだめなのですか?
2019/10/25(金) 12:00:59.99ID:RwV+js8P
systemd のログアウトとか、
逆に、ログアウト時に処理せず、ログイン時に処理するとか
逆に、ログアウト時に処理せず、ログイン時に処理するとか
2019/10/25(金) 12:03:05.91ID:RwV+js8P
確か、縦横変換は、xargs じゃなかった?
2019/10/25(金) 13:04:28.71ID:M6r4WUQ0
>>153
もしかしてと思って
exec dash
ってやってみたら書き込まれた。
ということは exec を使えばできる可能性が…
でも bash の man に明確にそう書かれてはいない気がする。
もしかしてと思って
exec dash
ってやってみたら書き込まれた。
ということは exec を使えばできる可能性が…
でも bash の man に明確にそう書かれてはいない気がする。
2019/10/25(金) 13:10:01.95ID:pMh/yvQj
$ seq 3 | xargs
1 2 3
xarrgsだけで使うとか盲点だった
1 2 3
xarrgsだけで使うとか盲点だった
2019/10/25(金) 13:42:09.89ID:NnBWMM0A
別にその程度なら、これでいいが
echo $(seq 3)
echo $(seq 3)
166login:Penguin
2019/10/25(金) 13:49:46.27ID:ew4plpxi2019/10/25(金) 15:01:20.34ID:b/c/D3hz
>>153
history -wの後sedを呼んで、さらにhistory -cとhistory -rを呼ぶとかは?
history -wの後sedを呼んで、さらにhistory -cとhistory -rを呼ぶとかは?
2019/10/25(金) 20:22:42.08ID:PcQV5FAs
sudo cpで何もオプションをつけずに実行して、
Aさんのファイル hoge.txt を、Bさんのファイル hoge.txt で、上書きコピーした時、
hoge.txt の所有者とかパーミッションは、Aさんの時のままみたいなんだけど、
これってどこかに仕様ある?
Aさんのファイル hoge.txt を、Bさんのファイル hoge.txt で、上書きコピーした時、
hoge.txt の所有者とかパーミッションは、Aさんの時のままみたいなんだけど、
これってどこかに仕様ある?
169login:Penguin
2019/10/25(金) 21:41:54.75ID:6kDTaNGH >>168
info cpの-pオプションのところに書いてある。
https://linuxjm.osdn.jp/info/GNU_coreutils/coreutils-ja_78.html
>このオプションを使わない場合、コピー先ファイルがすでに存在している場合は、 その許可属性は変更されない。
info cpの-pオプションのところに書いてある。
https://linuxjm.osdn.jp/info/GNU_coreutils/coreutils-ja_78.html
>このオプションを使わない場合、コピー先ファイルがすでに存在している場合は、 その許可属性は変更されない。
2019/10/25(金) 21:46:02.55ID:EL0TBdFz
>>169
ありがとう。これで安心できるw
ありがとう。これで安心できるw
171login:Penguin
2019/10/25(金) 21:51:40.62ID:mq4pzYPG 余計なことしないでデフォルトの挙動に慣れといた方がいいんじゃね
172168 = 170
2019/10/25(金) 22:06:11.75ID:EL0TBdFz 俺のこと? なんか勘違いしてると思うけど、
例えば、 /etc以下のとあるファイルを相手に渡して
書き換えておいたから、これ cp して上書きしておいてって言って
相手が何も考えずに、sudo cp しちゃっても大丈夫だよねって話だよ
例えば、 /etc以下のとあるファイルを相手に渡して
書き換えておいたから、これ cp して上書きしておいてって言って
相手が何も考えずに、sudo cp しちゃっても大丈夫だよねって話だよ
173login:Penguin
2019/10/25(金) 23:15:42.66ID:ew4plpxi2019/10/26(土) 11:29:58.88ID:aEAPGpq3
Linuxとは直接関係ないかもしれませんが質問です。
何の関係もないLinuxサーバ用PCとWindowsデスクトップ用PCがあります。
HDD2台をサーバ用PCでRAID1にして構築した後
何かの拍子にそのHDD1個をデスクトップ用PCに入れるとすると
ドライブはちゃんと認識されるのでしょうか。
ファイルシステムはext4で、デスクトップ用PCにはext4読み込みのためのソフトを入れることとします。
何の関係もないLinuxサーバ用PCとWindowsデスクトップ用PCがあります。
HDD2台をサーバ用PCでRAID1にして構築した後
何かの拍子にそのHDD1個をデスクトップ用PCに入れるとすると
ドライブはちゃんと認識されるのでしょうか。
ファイルシステムはext4で、デスクトップ用PCにはext4読み込みのためのソフトを入れることとします。
2019/10/26(土) 11:46:24.23ID:oNLsi5fR
何でRAID組んだのかで違うでしょ
2019/10/26(土) 11:49:41.67ID:ZfJ5IMnc
そこにHDDが2台あったから
177152
2019/10/26(土) 12:06:45.41ID:pXpNefp4 >>152
自己レス
>アップグレードできるパッケージを、一覧表示する、
>apt list --upgradable
>と同じ機能の、apt-get は有りませんか?
apt-get のオプションにあった
-u, --show-upgraded
更新パッケージ表示 - 更新される全パッケージを一覧表示します。設定項目: APT::Get::Show-Upgraded
-V, --verbose-versions
更新・インストールするパッケージのバージョンをすべて表示します。設定項目: APT::Get::Show-Versions
自己レス
>アップグレードできるパッケージを、一覧表示する、
>apt list --upgradable
>と同じ機能の、apt-get は有りませんか?
apt-get のオプションにあった
-u, --show-upgraded
更新パッケージ表示 - 更新される全パッケージを一覧表示します。設定項目: APT::Get::Show-Upgraded
-V, --verbose-versions
更新・インストールするパッケージのバージョンをすべて表示します。設定項目: APT::Get::Show-Versions
178174
2019/10/26(土) 13:35:21.28ID:aEAPGpq32019/10/26(土) 13:51:18.58ID:F14et2Hg
ミラーならやってみりゃいいじゃん
2019/10/26(土) 19:30:00.71ID:mJoLKa9d
>>178
暗号化してなければ、RAID1ならハードウェアRAIDでもソフトウェアRAIDでも、他PCに接続すれば中身は見えるよ。
暗号化してなければ、RAID1ならハードウェアRAIDでもソフトウェアRAIDでも、他PCに接続すれば中身は見えるよ。
2019/10/26(土) 23:46:48.54ID:IiUQELA0
派生が大量にあるLinuxに対してBSDの派生が少ないのはなんでなんです?
2019/10/27(日) 00:06:29.57ID:/drCSR+3
ユーザーがいないからやろ
2019/10/27(日) 00:23:47.66ID:nwZsKjXo
Linuxは冷食弁当
BSDは手作り弁当
UNIXは二郎でいいか
BSDは手作り弁当
UNIXは二郎でいいか
2019/10/27(日) 01:40:42.32ID:8NH89CAZ
>>182
Linuxの場合は自分の好きなようにしたいからディストリを色々起こしたって感じだからな
Linuxの場合は自分の好きなようにしたいからディストリを色々起こしたって感じだからな
2019/10/27(日) 05:25:58.94ID:ZjFaYx5E
食べ物で例えるなとあれほど…
2019/10/27(日) 06:37:41.89ID:QrTJsh8Q
>>181
ポリシーの違い
ポリシーの違い
2019/10/27(日) 07:20:34.44ID:0K1aGab+
BSDの派生が少ないんじゃなく、Linuxの派生の多さが異常なんだよ
188login:Penguin
2019/10/27(日) 12:52:04.73ID:V2uhvpIm すいません、
松田聖子のファイルが200以上あってファイル名が、
いちご畑でつかまえて.mp3
潮騒.mp3
電話でデート.mp3
なんで、行頭に三桁、あるいは四桁の連番を付けたいと思います。
001-いちご畑でつかまえて.mp3
002-潮騒.mp3
0213-電話でデート.mp3
調べたんですが、行頭に連番をつける方法が見つかりませんでした。
よろしくお願いします。
松田聖子のファイルが200以上あってファイル名が、
いちご畑でつかまえて.mp3
潮騒.mp3
電話でデート.mp3
なんで、行頭に三桁、あるいは四桁の連番を付けたいと思います。
001-いちご畑でつかまえて.mp3
002-潮騒.mp3
0213-電話でデート.mp3
調べたんですが、行頭に連番をつける方法が見つかりませんでした。
よろしくお願いします。
2019/10/27(日) 13:25:45.94ID:dgTsOTGe
190login:Penguin
2019/10/27(日) 16:03:08.34ID:V2uhvpIm2019/10/27(日) 18:17:28.51ID:1EgYvHMw
松田聖子が200以上か…
2019/10/27(日) 20:17:04.79ID:vrbz31o7
キャリア30年以上あれば余裕でその位はあるだろう
2019/10/27(日) 22:13:55.48ID:8NH89CAZ
2019/10/28(月) 07:11:10.04ID:DrC7/o+o
松田聖子は、ユーミン(呉田軽穂)の名曲が多い
コード進行も、半音下がりのクリシェを多用したり、
米国で言えば、David Foster に匹敵する時代!
まあ、ユーミンは、女筒美京平と言われて、
林哲司は、日本のDavid Fosterと言われていたけど
日米英国も、MTV の影響か、80年代ポップスに名曲が多い
コード進行も、半音下がりのクリシェを多用したり、
米国で言えば、David Foster に匹敵する時代!
まあ、ユーミンは、女筒美京平と言われて、
林哲司は、日本のDavid Fosterと言われていたけど
日米英国も、MTV の影響か、80年代ポップスに名曲が多い
195login:Penguin
2019/10/28(月) 08:25:15.43ID:HMUb8kSq エスケープをかましたsedの使い方で質問があります
$ echo -e "dog,\033[38;5;11m hoge\033[0m, cat"
dog, hoge, cat <=== hogeだけ黄色で表示
$ echo -e "dog, hoge, cat" | sed -e "s/hoge/foo/"
dog, foo, cat <=== 普通のsedの結果
この上記2つを組み合わせたいのですが
エスケープキャラが色コードに変換されず、hogeの前にfooが食い込でます
$ echo -e "dog, hoge, cat" | sed -e "s/hoge/\033[38;5;11mfoo\033[0m/"
dog, hoge33[38;5;11mfoohoge33[0m, cat <=== ぐちゃぐちゃ
この例でhogeから黄色のfooにsed変換するにはどうすればいいですか?
$ echo -e "dog,\033[38;5;11m hoge\033[0m, cat"
dog, hoge, cat <=== hogeだけ黄色で表示
$ echo -e "dog, hoge, cat" | sed -e "s/hoge/foo/"
dog, foo, cat <=== 普通のsedの結果
この上記2つを組み合わせたいのですが
エスケープキャラが色コードに変換されず、hogeの前にfooが食い込でます
$ echo -e "dog, hoge, cat" | sed -e "s/hoge/\033[38;5;11mfoo\033[0m/"
dog, hoge33[38;5;11mfoohoge33[0m, cat <=== ぐちゃぐちゃ
この例でhogeから黄色のfooにsed変換するにはどうすればいいですか?
2019/10/28(月) 09:17:41.62ID:lNAOad9p
2019/10/28(月) 09:55:01.53ID:XUE5MeKL
役に立つかどうかわからないけど、参考にしてね。
$ echo "dog, hoge, cat" |
> sed -e 's/hoge/\\033[38\;5\;11mfoo \\033[0m/' |
> sed -e "s/^/'/" -e "s/$/'/" |
> xargs echo -e
$ echo "dog, hoge, cat" |
> sed -e 's/hoge/\\033[38\;5\;11mfoo \\033[0m/' |
> sed -e "s/^/'/" -e "s/$/'/" |
> xargs echo -e
2019/10/28(月) 10:16:17.82ID:gaVasQIf
色コードを素直にredやgreenで扱える便利道具ってないの?
2019/10/28(月) 11:50:49.14ID:5E0lMxSX
200login:Penguin
2019/10/28(月) 14:05:13.29ID:HMUb8kSq201login:Penguin
2019/10/28(月) 14:17:33.13ID:HMUb8kSq202login:Penguin
2019/10/28(月) 14:31:46.32ID:jxo+K6ql Linuxのほうは公式のディストリってものがないからだろうな
203197
2019/10/28(月) 21:30:39.09ID:k8dpn6a1 >>200
>「$」一文字ですごい。
> この場合のクォーテーションで括られたパターンの外の$はどういう意味ですか?
洒落てますよね。私も、それでよかったのかと感心しました。
$'...' は、bash のクォートの一種です。man bash の「クォート (QUOTING)」を見てください。
この部分は、英語マニュアルの方がわかりやすいと思います。
>「$」一文字ですごい。
> この場合のクォーテーションで括られたパターンの外の$はどういう意味ですか?
洒落てますよね。私も、それでよかったのかと感心しました。
$'...' は、bash のクォートの一種です。man bash の「クォート (QUOTING)」を見てください。
この部分は、英語マニュアルの方がわかりやすいと思います。
2019/10/29(火) 12:35:22.88ID:iAozzjoU
>>196
>echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\033[38;5;11mfoo\033[0m/'
\033 を、\e に代えても動く
echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\e[38;5;11mfoo\e[0m/'
>echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\033[38;5;11mfoo\033[0m/'
\033 を、\e に代えても動く
echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\e[38;5;11mfoo\e[0m/'
2019/10/29(火) 13:21:09.12ID:VPiAGyFh
echo -e 'dog, hoge, cat' | sed -e 's/hoge/^[[38;5;11mfoo^[[0m/'
ただし ^[ は ctrl+v の後に escキーで入力
ただし ^[ は ctrl+v の後に escキーで入力
2019/10/29(火) 18:17:48.56ID:HNRQ6y5r
sway使いはおらんのけ?
2019/10/29(火) 22:29:29.28ID:pFWErwX/
ターミナルで折り返し改行されたときに上矢印押したら上の行に行けるようにできたりしませんかね。下矢印で下。ずーっと横長の移動しなくちゃいけないから辛いです。
それでもって一番上の行で上を押せば前の履歴に行くような普通の操作を実現したいです。
今使ってる環境はgnomeターミナル+tmux +zsh
それでもって一番上の行で上を押せば前の履歴に行くような普通の操作を実現したいです。
今使ってる環境はgnomeターミナル+tmux +zsh
2019/10/30(水) 23:58:54.89ID:ukMyq2L7
xargsでaliasを使う方法ってないんだな
自作コマンドを使う方法はあるのに
自作コマンドを使う方法はあるのに
209login:Penguin
2019/10/31(木) 00:50:56.71ID:reP6OUR1 bashの配列で質問です。
空白で区切られた3つの要素を配列に代入
declare -a array=( "A B C" "C D E" "F G H" );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }
結果は予想通り
array[0] = A B C
array[1] = D E F
array[2] = G H I
今度は改行で区切られた3つの要素の内容を、awkで逆順した結果に「"」とつけて配列に代入。
declare -a array=( $(echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}') );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }
しかし、実際はクォーテーションの機能も無視され、空白でバラバラに区切られ配列に代入されてします。
array[0] = "C
array[1] = B
array[2] = A"
… 略 …
array[7] = H
array[8] = G"
配列に代入しなければ期待通りの結果が出力されます。この結果を望んでいます。
echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
"C B A"
"F E D"
"I H G"
どうすれば配列の要素に上記の結果を代入することができますか?
空白で区切られた3つの要素を配列に代入
declare -a array=( "A B C" "C D E" "F G H" );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }
結果は予想通り
array[0] = A B C
array[1] = D E F
array[2] = G H I
今度は改行で区切られた3つの要素の内容を、awkで逆順した結果に「"」とつけて配列に代入。
declare -a array=( $(echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}') );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }
しかし、実際はクォーテーションの機能も無視され、空白でバラバラに区切られ配列に代入されてします。
array[0] = "C
array[1] = B
array[2] = A"
… 略 …
array[7] = H
array[8] = G"
配列に代入しなければ期待通りの結果が出力されます。この結果を望んでいます。
echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
"C B A"
"F E D"
"I H G"
どうすれば配列の要素に上記の結果を代入することができますか?
2019/10/31(木) 00:56:01.59ID:hpOp+iT/
>>209
配列なんか使うな。それはbashの拡張だ。
POSIXシェルには配列などというものはない。
外部コマンドの呼び出しなんだからそれはbashスクリプトの外の話だ
bash専用機能である配列は使えない
配列なんか使うな。それはbashの拡張だ。
POSIXシェルには配列などというものはない。
外部コマンドの呼び出しなんだからそれはbashスクリプトの外の話だ
bash専用機能である配列は使えない
2019/10/31(木) 01:02:37.89ID:hpOp+iT/
そもそもシェルというものをわかっていない。
一般的な言語の関数は、引数で情報を与え、戻り値で情報をもらうものだが
シェルというのは情報の入出力を標準入出力で行うものだ。
そしてシェルでは標準入出力の一行が一データ、複数のデータは複数の行数で表すのが基本だ
引数はこういうやり方もあるよという別解だと考えたほうがいい
echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
↑つまりはこれが正しいということだ。
だからお前がやるべきことはそのbash依存した配列を
複数行のデータに変換することだ
一般的な言語の関数は、引数で情報を与え、戻り値で情報をもらうものだが
シェルというのは情報の入出力を標準入出力で行うものだ。
そしてシェルでは標準入出力の一行が一データ、複数のデータは複数の行数で表すのが基本だ
引数はこういうやり方もあるよという別解だと考えたほうがいい
echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
↑つまりはこれが正しいということだ。
だからお前がやるべきことはそのbash依存した配列を
複数行のデータに変換することだ
2019/10/31(木) 01:07:04.68ID:hpOp+iT/
>>209
話の前に、echo -e はやめとけ。それはbash依存だ。
エスケープシーケンスを使うならprintfを使ったほうがいい
簡単になおせる
printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
そしてbashの配列の代わりに位置パラメータを使えばいい
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
話の前に、echo -e はやめとけ。それはbash依存だ。
エスケープシーケンスを使うならprintfを使ったほうがいい
簡単になおせる
printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
そしてbashの配列の代わりに位置パラメータを使えばいい
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
2019/10/31(木) 01:10:51.96ID:hpOp+iT/
どうしてもbashの配列を使いたいというのならこうだ。
declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
考え方は位置パラメータ $@ を使うのと同じだ。
$@ の代わりに ${array[@]} になっただけだ。
言い換えると位置パラメータを複数使えるようになったのがbashの配列だ
declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
考え方は位置パラメータ $@ を使うのと同じだ。
$@ の代わりに ${array[@]} になっただけだ。
言い換えると位置パラメータを複数使えるようになったのがbashの配列だ
2019/10/31(木) 01:11:21.35ID:CucVKUrX
>>209
readarray
readarray
2019/10/31(木) 01:14:52.04ID:niz424am
>>209
readarrayはパイプにするとサブシェルになってしまって動かないから例も置いとく
readarray -t array < <(echo -e "A B C\nD E F\nG H I" | awk '{printf "%s %s %s\n", $3, $2, $1}')
readarrayはパイプにするとサブシェルになってしまって動かないから例も置いとく
readarray -t array < <(echo -e "A B C\nD E F\nG H I" | awk '{printf "%s %s %s\n", $3, $2, $1}')
2019/10/31(木) 01:19:51.44ID:hpOp+iT/
readarrayもbashの拡張だ。そういうものは使わない
シェルスクリプトはパイプで処理をつなげていくものだ
declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | while read -r line; do
echo "$line" # $lineの加工処理とかなにか
done
こうすることで、出力とawkの加工と自前のreadの処理が並列で動く
readarrayなどを使ってしまったら、一旦bashの配列に入れてしまうから
並列で動かなくなる。つまり遅くなる。
| while read はパイプでサブシェルになってしまって動かないから例も置いとく
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | {
i=0
while read -r line; do
i=$((i + 1))
echo "$line" # $lineの加工処理とかなにか
done
echo "合計行数 $i"
}
シェルスクリプトはパイプで処理をつなげていくものだ
declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | while read -r line; do
echo "$line" # $lineの加工処理とかなにか
done
こうすることで、出力とawkの加工と自前のreadの処理が並列で動く
readarrayなどを使ってしまったら、一旦bashの配列に入れてしまうから
並列で動かなくなる。つまり遅くなる。
| while read はパイプでサブシェルになってしまって動かないから例も置いとく
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | {
i=0
while read -r line; do
i=$((i + 1))
echo "$line" # $lineの加工処理とかなにか
done
echo "合計行数 $i"
}
2019/10/31(木) 01:20:57.62ID:hpOp+iT/
>>216のように書くよりも関数にしたほうが分かりやすいがな
func() {
i=0
while read -r line; do
i=$((i + 1))
echo "$line" # $lineの加工処理とかなにか
done
echo "合計行数 $i"
}
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | func
func() {
i=0
while read -r line; do
i=$((i + 1))
echo "$line" # $lineの加工処理とかなにか
done
echo "合計行数 $i"
}
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | func
2019/10/31(木) 01:29:26.44ID:8CGDUgWT
>>209
古いbashでreadarrayがなければ
eval 'array=('"$(echo -e "A B C
\nD E F\nG H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}'
古いbashでreadarrayがなければ
eval 'array=('"$(echo -e "A B C
\nD E F\nG H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}'
2019/10/31(木) 01:38:06.90ID:8ldiWh95
>>218のbash依存なし版はこっち。当たり前だけどちゃんと動くでw
eval 'set -- '"$(printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}')"
printf '%s\n' "$@"
eval 'set -- '"$(printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}')"
printf '%s\n' "$@"
220login:Penguin
2019/10/31(木) 01:40:37.18ID:9QFNPqD9 Windowsの感覚が抜けず、シェル上でディレクトリ名やファイル名を大文字小文字を区別せず打ってしまいます
直したいとは思うのですが、差し当たり大文字小文字が間違えていても修正や補完をしてくれるように出来るとありがたいです
何かそういう設定やツール等があれば教えてください
直したいとは思うのですが、差し当たり大文字小文字が間違えていても修正や補完をしてくれるように出来るとありがたいです
何かそういう設定やツール等があれば教えてください
2019/10/31(木) 01:43:22.34ID:8ldiWh95
あとLinuxならrev使ったほうが簡単だな
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | rev
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | rev
2019/10/31(木) 01:53:30.01ID:8ldiWh95
>>219でもいいけど、正直evalを使うとエスケープやダブルクォートが
面倒になったりするからこっちのほうがいいかもな。(↓awkのダブルクォートを消した)
printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "%s %s %s\n", $3, $2, $1}' | {
set --
while read -r line; do
set -- "$@" "$line"
done
printf '%s\n' "$@"
}
bashで配列に入れたければ頑張れw
まあ、位置パラメータ(配列)に入れるよりも、その場で処理したほうが
シェルスクリプトらしくて速くなるんだが
おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | awk '{print $3, $2, $1}' | {
おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | rev | {
面倒になったりするからこっちのほうがいいかもな。(↓awkのダブルクォートを消した)
printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "%s %s %s\n", $3, $2, $1}' | {
set --
while read -r line; do
set -- "$@" "$line"
done
printf '%s\n' "$@"
}
bashで配列に入れたければ頑張れw
まあ、位置パラメータ(配列)に入れるよりも、その場で処理したほうが
シェルスクリプトらしくて速くなるんだが
おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | awk '{print $3, $2, $1}' | {
おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | rev | {
223login:Penguin
2019/10/31(木) 03:19:09.95ID:reP6OUR12019/10/31(木) 09:58:32.70ID:HOpY20qN
>>220
bashは.inputrcにset completion-ignore-case Onでできるらしい
あるいは.bashrcにbind 'set completion-ignore-case on'
.inputrcだとreadline全体に影響するから後者の方がいいかも
https://askubuntu.com/questions/87061/can-i-make-tab-auto-completion-case-insensitive-in-bash
zshはqiitaにやり方が描いてあった
https://qiita.com/watertight/items/2454f3e9e43ef647eb6b
bashは.inputrcにset completion-ignore-case Onでできるらしい
あるいは.bashrcにbind 'set completion-ignore-case on'
.inputrcだとreadline全体に影響するから後者の方がいいかも
https://askubuntu.com/questions/87061/can-i-make-tab-auto-completion-case-insensitive-in-bash
zshはqiitaにやり方が描いてあった
https://qiita.com/watertight/items/2454f3e9e43ef647eb6b
2019/10/31(木) 10:13:09.17ID:w4pP63KT
>>220
shopt -s cdspell dirspell
cdspellはcdの引数の誤字脱字が1文字なら修正する
cd /Va
cd /Var
cd /vaa
cd /ar
こんなのね
dirspellはdirの誤字脱字が1文字ならタブ補完時に修正する
ls -l /va/logs/
ここでタブを押すとls -l /var/log/になる
あくまで一文字だけだからあまり宛にはできないけどね
shoptにはcdなしで移動できるautocdもあるからいくつか設定しとくと便利
基本は小文字で打って後はタブ補完で勝手に入力させればいいよ
shopt -s cdspell dirspell
cdspellはcdの引数の誤字脱字が1文字なら修正する
cd /Va
cd /Var
cd /vaa
cd /ar
こんなのね
dirspellはdirの誤字脱字が1文字ならタブ補完時に修正する
ls -l /va/logs/
ここでタブを押すとls -l /var/log/になる
あくまで一文字だけだからあまり宛にはできないけどね
shoptにはcdなしで移動できるautocdもあるからいくつか設定しとくと便利
基本は小文字で打って後はタブ補完で勝手に入力させればいいよ
2019/10/31(木) 13:43:01.73ID:ljvnXlxv
すいません質問です
SparkyLinux 5.9 Xfce 64 bit に Software Boutique というパッケージマネージャを
インストールするため
https://snapcraft.io/install/software-boutique/debian
を参考にインストールしてみた
( ターミナルで"software-boutique 0+git.9cc961a
from Martin Wimpress (flexiondotorg) installed"まで表示されました )
のですが
どうやったら Software Boutique を起動できるのでしょうか
メニューでそれらしきところを探してみたのですが見当たりません
よろしくお願いします
SparkyLinux 5.9 Xfce 64 bit に Software Boutique というパッケージマネージャを
インストールするため
https://snapcraft.io/install/software-boutique/debian
を参考にインストールしてみた
( ターミナルで"software-boutique 0+git.9cc961a
from Martin Wimpress (flexiondotorg) installed"まで表示されました )
のですが
どうやったら Software Boutique を起動できるのでしょうか
メニューでそれらしきところを探してみたのですが見当たりません
よろしくお願いします
2019/10/31(木) 20:19:09.63ID:HYxFHwOd
別にbash依存でよくない?
posix互換厳守にしようとすると面倒
将来bashが無くなっちゃうことってないだろ、無くなったらその時はその時だし
posix互換厳守にしようとすると面倒
将来bashが無くなっちゃうことってないだろ、無くなったらその時はその時だし
2019/11/01(金) 03:02:42.50ID:FRerU7gf
ノートPCを起動するとGNU GrubのBASH画面で止まるようになりました
恐らくexitと入力すれば先へ進めるのですが、あいにくキーボードが半壊していて入力できません
USBのキーボードは読み込んでくれず、BIOSに行くことも何故かできなくなりました
一応「ryodfghkl;'zxcvbnm,.」は入力することができますが何か突破口はありますか?
恐らくexitと入力すれば先へ進めるのですが、あいにくキーボードが半壊していて入力できません
USBのキーボードは読み込んでくれず、BIOSに行くことも何故かできなくなりました
一応「ryodfghkl;'zxcvbnm,.」は入力することができますが何か突破口はありますか?
2019/11/01(金) 03:26:49.91ID:xK4Ryk/p
USBメモリブートやUSBCDブートもやりましたがやはり最初から認識しないようで駄目でした
PS/2キーボードは本体も刺す所もないです
PS/2キーボードは本体も刺す所もないです
2019/11/01(金) 03:27:39.73ID:R2TKQ4dq
>>227
将来世の中からbashが消えて無くなることはないが、
bashが使われてない環境ってのは存在するよ。
bashを使わなければいけないという特別な理由があるならいいけど、
必要ないのに依存させる意味がない
将来世の中からbashが消えて無くなることはないが、
bashが使われてない環境ってのは存在するよ。
bashを使わなければいけないという特別な理由があるならいいけど、
必要ないのに依存させる意味がない
2019/11/01(金) 03:53:46.79ID:+wZq5vgs
自分のプログラムが巡り巡ってbashのない環境で動かすことになる可能性があるかどうかってことだけだな
結論としては不要
必要になったらまたその時考えればいい
結論としては不要
必要になったらまたその時考えればいい
2019/11/01(金) 05:33:45.83ID:WI3r7Akd
POSIX原理主義者はシェルスクリプトスレが引き取ったはずだし迷子かな
2019/11/01(金) 13:09:00.41ID:BMKjWeTQ
POSIX原理主義者はどこにでもいる
234228
2019/11/01(金) 16:20:27.36ID:oYdI1LQt 無事BIOS起動して自己解決しました
2019/11/01(金) 16:27:48.46ID:qfES3rdP
>>235
良かったな。
良かったな。
2019/11/01(金) 19:24:40.57ID:CYJonS8S
メールのspfって
メールサーバA グローバルIP: aaa.aaa.aaa.aaa
からリレーされて
メールサーバB グローバルIP: bbb.bbb.bbb.bbb
から各ドメインに配送する場合、
spfにはbbb.bb.bbb.bbbだけ登録しても有効?
Recievedヘッダに入っていれば、最終の配送サーバのipアドレスだけ登録しても良いの?
メールサーバA グローバルIP: aaa.aaa.aaa.aaa
からリレーされて
メールサーバB グローバルIP: bbb.bbb.bbb.bbb
から各ドメインに配送する場合、
spfにはbbb.bb.bbb.bbbだけ登録しても有効?
Recievedヘッダに入っていれば、最終の配送サーバのipアドレスだけ登録しても良いの?
2019/11/02(土) 14:11:37.25ID:G/Y6LUFG
ちょっとした疑問ですが、
よく、YouTube で、セミナー動画を見るのですが、
長いコマンドをコピペするのに、時間が掛かる人がいるのですが、
使うコマンドを、あらかじめヒストリーに登録しておけないのですか?
よく、YouTube で、セミナー動画を見るのですが、
長いコマンドをコピペするのに、時間が掛かる人がいるのですが、
使うコマンドを、あらかじめヒストリーに登録しておけないのですか?
2019/11/02(土) 14:16:26.03ID:wcogQYm2
そういうアホの動画は見る必要ないですよ
2019/11/02(土) 15:06:19.73ID:WQHwUzU+
カーネルの4.15.XX をインストールしないようにするには
どうすれば良いですか?
カーネルは5.0.xxを使用してるんで・・・
どうすれば良いですか?
カーネルは5.0.xxを使用してるんで・・・
240login:Penguin
2019/11/02(土) 15:10:52.07ID:ZIBjJAUd >>237
そのためのエイリアス
そのためのエイリアス
241login:Penguin
2019/11/02(土) 15:36:21.97ID:WYRryZM8 >>239
どういうこと?
どういうこと?
2019/11/02(土) 15:49:16.60ID:WQHwUzU+
243login:Penguin
2019/11/02(土) 16:06:28.41ID:A8GcRn6I くだらない質問してもいいですか?
244login:Penguin
2019/11/03(日) 01:14:32.57ID:5USr6aie >>228
ctrl-D
ctrl-D
2019/11/03(日) 03:30:25.20ID:qnpxgF/F
>>236
配送先の各ドメインのMTAから見て直前のMTAのみ記載で良い
今回の質問ならbbb.bbb.bbb.bbb
メールサーバAから直接各ドメインに配送するパターンがあるならaaa.aaa.aaa.aaaも必要
SPFの検査は発IPとエンベロープFROMしか見てないから、ヘッダのReceivedは気にしなくて良い
配送先の各ドメインのMTAから見て直前のMTAのみ記載で良い
今回の質問ならbbb.bbb.bbb.bbb
メールサーバAから直接各ドメインに配送するパターンがあるならaaa.aaa.aaa.aaaも必要
SPFの検査は発IPとエンベロープFROMしか見てないから、ヘッダのReceivedは気にしなくて良い
246login:Penguin
2019/11/03(日) 11:12:58.83ID:k3m20uS+ すいません、先週松田聖子のファイル名で質問した者です。
Windowsから引っ越ししてきた中島みゆきのファイルが沢山あって、
01.この世に二人だけ.mp3
02.夏土産.mp
03.髪を洗う女.mp3
などで、教わったRenameコマンドでアレヤコレヤとやったんですが、
$ rename 's/./-/' *.mp3 ってやると0が消えちゃって、
-1.この世に二人だけ.mp3 になってしまう、
”-”これがあるとオプションがなんとかで端末に叱られて、、、
01-この世に二人だけ.mp3 と言うファイル名にしたいだけなんですが、
よろしくお願いします。
Windowsから引っ越ししてきた中島みゆきのファイルが沢山あって、
01.この世に二人だけ.mp3
02.夏土産.mp
03.髪を洗う女.mp3
などで、教わったRenameコマンドでアレヤコレヤとやったんですが、
$ rename 's/./-/' *.mp3 ってやると0が消えちゃって、
-1.この世に二人だけ.mp3 になってしまう、
”-”これがあるとオプションがなんとかで端末に叱られて、、、
01-この世に二人だけ.mp3 と言うファイル名にしたいだけなんですが、
よろしくお願いします。
2019/11/03(日) 12:43:54.80ID:SZi5v+9Q
>rename 's/./-/' *.mp3
正規表現で、. - は特別な意味がある、特殊文字。
. は任意の1文字、- は、[a-z] で、a〜z みたいに範囲を表す
特殊文字をエスケープするには、\(バックスラッシュ)を使う。
普通の文字に、\を使っても、何も変わらない
ただし、今回の- は、[ ]内ではないので、エスケープする必要はないけど、しても何も変わらない
Perl の正規表現で、
echo '03.髪.mp3' | perl -pe 's/^(\d+)\./$1-/'
#=> 03-髪.mp3
^ は行頭で、\d+ は数字が1つ以上、
( ) は、キャプチャー部分で、$1 〜 $9 で参照できる
Ubuntu では、安全のため、-n オプションを付ける。
-n, -nono
No action: print names of files to be renamed, but don't rename.
正規表現で、. - は特別な意味がある、特殊文字。
. は任意の1文字、- は、[a-z] で、a〜z みたいに範囲を表す
特殊文字をエスケープするには、\(バックスラッシュ)を使う。
普通の文字に、\を使っても、何も変わらない
ただし、今回の- は、[ ]内ではないので、エスケープする必要はないけど、しても何も変わらない
Perl の正規表現で、
echo '03.髪.mp3' | perl -pe 's/^(\d+)\./$1-/'
#=> 03-髪.mp3
^ は行頭で、\d+ は数字が1つ以上、
( ) は、キャプチャー部分で、$1 〜 $9 で参照できる
Ubuntu では、安全のため、-n オプションを付ける。
-n, -nono
No action: print names of files to be renamed, but don't rename.
2019/11/03(日) 13:09:22.60ID:1jAJr1Zb
's/\./\-/' でどうかな
正規表現だと. (ドット) は任意の1文字にマッチするからそのままだと最初の0にマッチする
バックスラッシュをつけてエスケープするとドットそのものにマッチするようにできる
範囲を表す−(ハイフン)も同様
正規表現だと. (ドット) は任意の1文字にマッチするからそのままだと最初の0にマッチする
バックスラッシュをつけてエスケープするとドットそのものにマッチするようにできる
範囲を表す−(ハイフン)も同様
249login:Penguin
2019/11/03(日) 13:27:54.52ID:siHYbgSn 置換後の方は\なしでいいかと
2019/11/03(日) 13:30:48.54ID:k3m20uS+
2019/11/03(日) 13:39:27.71ID:1jAJr1Zb
2019/11/03(日) 13:55:43.67ID:sxG3YU9I
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】星野真里(44) 24時間テレビのマラソンランナーに決定! [Ailuropoda melanoleuca★]
- 【芸能】松山千春、本田圭佑の解説に「なんで『さん』付けで呼ぶんだ?」「後輩なんだからさ」「つけない方がわかりやすいんじゃ…」 [冬月記者★]
- 【サッカーW杯】4-0 日本代表・森保ジャパン、チュニジアに歴史的4発大勝 アジア勢の1次L連敗を「6」で止めた★6 [ゴアマガラ★]
- 家族と来た水族館で…10代女性のスカート内を盗撮か 45歳の男を現行犯逮捕 静岡・下田市 [煮卵★]
- あぼーん
- 40歳男性・生活保護受給者 “グリ下のくすり屋さん”1つの医療機関から2万錠の薬を大量入手、「薬をめっちゃ売っていた」 [お断り★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★138【メキシコ/カナダ/アメリカ】
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★137【メキシコ/カナダ/アメリカ】
- はません
- わしせん3
- ハム専 気合い入れなくて良いよ、もう
- かもめせん祝勝会
- パスタを折るとイタリア人が怒るなら短いパスタを売ればいい
- 【動画】ブイチューバーの話す「弟」ってどれくらい信憑性あるの?
- ✋🏿( ・᷄ὢ・᷅ )寝るんで
- チ一牛の求愛行動ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 🏡Monday✋😅✋揉んでー🏡
- 【画像】品評会 新潟のバレー部JK(合宿中) 童貞は6を選ぶ [904880432]