私の質問は 2 つに分割できます。まず、次のようなデータ ファイル (file.dat) があります。
Parameter stuff number 1 (1029847) word index 2 (01293487), bla bla
Parameter stuff number 3 (134123) word index 4 (02983457), bla bla
Parameter stuff number 2 (109847) word index 3 (1029473), bla bla
etc...
括弧内の数値を抽出し、変数に保存します。たとえば、1 行目の最初の数値は「x1」、同じ行の 2 番目の数値は「y1」、2 行目の「x2」と「y2」などです。など... 番号は行ごとにランダムに変化し、その位置 (必要に応じて列内) は行ごとに同じままです。行数は可変 (0 ~ 'n') です。これどうやってするの?お願いします。
私は答えを探していて、使用できるさまざまなコマンドで迷子になりますが、それらの答えは、単語が最後または括弧内にあるが、1行に1つしかないなどの特定の例に対応しています.とにかく、ここに私が持っているものがありますこれまでに行われた(私は初心者です):
1) 文字列の数字の一部ではない文字を取り除きます
sed -i 's/(//g' file.dat
sed -i 's/),//g' file.dat
2) 欲求不満から、行全体を変数に出力することにしました (近づいていますか?) 2.1) 反復する行数を取得します。
numlines=$(wc -l < file.dat)
2.2) numlines へのループ (このビットはまだテストしていません!)
for i in {1..$numlines}
do
line${!i}=$(sed -n "${numlines}p" file.dat)
done
2.3) 私はここであきらめました。
2 番目の質問も同様で、単純に好奇心からです。スペース、タブ、カンマ、任意の区切り記号で区切られたデータベースを想像してみてください。このデータベースには可変行数 ('n') があり、1 行あたりの文字列も異なる場合があります ('k')。「j」番目の文字列の「i」行の値を抽出し、変数「x」に保存するにはどうすればよいですか?