コンテンツにスキップ

利用者:Lllqqq000/テキスト処理

テーブルを作る[編集]

空白区切りのテキストを読み込んでtableを作る。(awkを使用)

BEGIN
{
  printf "{| class=\"sortable wikitable\"\n";
}

{
  for (i = 1; i <= NF; i++)
    {
      if (NR == 1)
        {
          if (i == 1)
            printf "!" $i;
          else
            printf "!!" $i;
        }
      else
        {
          if (i == 1)
            {
              printf "|-\n";
              printf "!" $i "\n";
            }
          else if (i == 2)
            printf "|" $i;
          else
            printf "||" $i;
        }
    }
  printf "\n";
}

END
{
  printf "|}\n";
}

タグを取る[編集]

超簡易ですがこれで十分。<x ... title=">">なんてのは扱いません。

sed 's/<[^>]\+>//g' 

リンクされている言葉をとりだす[編集]

(<a href=">>>"> あ </a> のようなものは無視)

 awk 'match ($0, /<a [^>]*>([^<]*)<\/a>/, word){print word[1]}' test.txt

*の箇条書きのソースを改行区切りのリストに[編集]

あるカテゴリに属する記事一覧をコピーしてリストを整理するとき使います。

 awk 'match ($0, /\* (.*)/, word) {print word[1]}' test.txt

このままウォッチリストに追加できます。

*の箇条書きのソースを改行区切りのリストに[編集]

 awk 'match ($0, /\* (.*)/, word) {printf "[["word[1]"]]{{!wrap}}"}' test.txt

テンプレート作るときよく利用します。

共通した行を抜き出す[編集]

1.txt と 2.txt はソートされたファイルであるとします。

comm -12  1.txt 2.txt

現在の検索では"[[Category:○○]] [[Category:☆☆]]"で検索しても思った結果がでないので一覧を作って共通部分を抜き出しました。

第n番目のフィールドでソート[編集]

sort +n 

小文字を大文字に[編集]

tr [a-z] [A-Z]

最後の行から最初の行の順番で表示する[編集]

tac

または

perl -e '{print reverse <>}'

つなげる[編集]

join や paste