[過去ログ] くだらねえ質問はここに書き込め! Part 234 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
754: 2019/01/25(金)09:55 ID:NUYQphv4(1) AAS
>>752
rescueシェルに落ちるのは/boot/grub以下のファイルにアクセスできないとかで必要なモジュールがロードできないときだからその辺を調べてみたら
755: 2019/01/25(金)10:33 ID:1HPZbFkV(1/4) AAS
xargsに-0を指定するとalias xargs='xargs 'が利かなくなるのは仕様なんだろうか
$ find -name "*txt" -print0 | xargs -0 ll
xargs: ll: そのようなファイルやディレクトリはありません

こうなる
ついでに"foo bar.txt"の分割も回避したいんだけども
756: 2019/01/25(金)10:34 ID:1HPZbFkV(2/4) AAS
やっと書けた
$ alias xargs='xargs '
$ find . -name "*txt" | xargs ll
ls: ./foo にアクセスできません: そのようなファイルやディレクトリはありません
ls: bar.txt にアクセスできません: そのようなファイルやディレクトリはありません
-rw-r--r-- 1 user user 0 1月 25 09:56 ./foo.txt
757
(1): 2019/01/25(金)10:39 ID:1HPZbFkV(3/4) AAS
You are unable to access 5ch.netって拒否られてls結果貼れん・・・
758
(2): 2019/01/25(金)13:05 ID:n6jRa/PR(1/10) AAS
>>753
x="a b
c d"

$ echo $x | od -t a
a sp b sp c sp d nl

$ echo "$x" | od -t a
a sp b nl c sp d nl

上は、echo で、途中の改行が、空白に変換される
759: 2019/01/25(金)13:10 ID:n6jRa/PR(2/10) AAS
>>757
何か、cmd.exe みたいな、NG ワードが含まれているのだろう。
全角文字にすれば、書き込める

MANGO 板の、NG ワード絞り込みスレッドで、テストもできる
760: 2019/01/25(金)13:37 ID:n6jRa/PR(3/10) AAS
>>744
Ruby では、\u(ユニコード), \x の16進数の文字コードが使える

p "\r".match /[\x0A-\x0D]/ # 0D
p "\t".match /\u{09}/

どちらもマッチする
761: 2019/01/25(金)15:37 ID:zUwbmFvr(1/2) AAS
>>744
POSIXが既定するBREでは無理だな
一部実装ではそれこそ\xXX(二桁の16進数)や\DDD(三桁の8進数)が使えるけども
762
(1): 2019/01/25(金)16:59 ID:1HPZbFkV(4/4) AAS
$ find . -name "f*txt" -print0 | xargs -0 ls -l
-rw-r--r-- 1 user user 3 1月 25 03:44 ./foo bar.txt
-rw-r--r-- 1 user user 0 1月 25 09:56 ./foo.txt

これでいけるか?llでこの結果を出したいって話なんだが
763
(8): 2019/01/25(金)17:53 ID:n6jRa/PR(4/10) AAS
ll | grep "^f.*txt$"
上では一致しないから、^(行頭)を削除して、

ll | grep "f.*txt$"

最後の列を取得できればよいけど、
foo bar.txt のファイル名に空白が入っているのは、無理
764: 763 2019/01/25(金)18:08 ID:n6jRa/PR(5/10) AAS
8個目の空白よりも、後ろの文字列が、ファイルパス。
WSL, Ubuntu16.04 では、./ が付かないファイル名

ただし途中の空白は、連続している場所があるので、そこを1つの空白とみなす。
1月など、日付が一桁だと、空白が入る
765
(2): 2019/01/25(金)18:48 ID:0IuYxi1s(2/3) AAS
>>758
レスありがとうございます。
確かにダンプすると(od知らなかった)改行が空白に変換されていることがわかりました。

これはダブルクォートのあり無しを「そういうもの」として使い分けるものなのか、
文字列を扱う場合は原則ダブルクォートを使う、と考えればいいのでしょうか?
766
(1): 763 2019/01/25(金)19:27 ID:n6jRa/PR(6/10) AAS
正規表現で、これの(.*)、$2 で、ファイルパス(名)を抜き出せる

ll | grep -E "([^ ]+ +){8}(.*)"

空白以外が1つ以上続いて、空白が1つ以上続く。
このパターンを8回繰り返して、それよりも後ろの部分

でも、grep では、キャプチャー部分だけは抜き出せないのか?
767
(1): 758 2019/01/25(金)19:31 ID:n6jRa/PR(7/10) AAS
>>765
echo の文字列・変数は、ダブルクォートで囲む方が無難かも
768
(2): 763 2019/01/25(金)19:58 ID:n6jRa/PR(8/10) AAS
>>766
修正
>ll | grep -E "([^ ]+ +){8}(.*)"

「./f 〜 txt」なら、
ll | grep -E "([^ ]+ +){8}(\./f.+txt)"
769
(1): 2019/01/25(金)20:37 ID:0IuYxi1s(3/3) AAS
>>767
ありがとうございます。
echoで文字列を扱うときはダブルクォートを使って、作ってみます。
770: 763 2019/01/25(金)20:39 ID:n6jRa/PR(9/10) AAS
>>768
修正
>ll | grep -E "([^ ]+ +){8}(\./f.+txt)"

(\./f.+txt) この部分を、(\.\/f.+txt) に変える。
/ の前にも、\ を付ける

gawk で、キャプチャ部分だけを取得できる

ll | gawk 'match($0, /([^ ]+ +){8}(\.\/f.+txt)/, a) {print a[2]}'

$0は、パイプから来た文字列、
// 内に正規表現、
a はマッチした配列で、[2] は2番目のキャプチャ
771: 2019/01/25(金)20:40 ID:zUwbmFvr(2/2) AAS
Python3.xパッケージをインストールしたときに付いてくる
「python3m」っていう名前のコマンドってどういうときに使うんですかね。
772: 2019/01/25(金)21:18 ID:5ObR/RVV(1) AAS
普通に ls じゃいかんの?
773
(1): 763 2019/01/25(金)21:57 ID:n6jRa/PR(10/10) AAS
勘違いしていた。
ファイルパスだけを抜き出さなくても、良かったのか。
マッチする行全体で良かったのか

>>768
で、取得できる

ll | grep -E "([^ ]+ +){8}(\./f.+txt)"

/ の前に、\ を入れてもよい。
(\.\/f.+txt)
1-
あと 229 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s