AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 413562
Accepted
alhelal
alhelal
Asked: 2017-12-29 16:59:10 +0800 CST2017-12-29 16:59:10 +0800 CST 2017-12-29 16:59:10 +0800 CST

用遵循模式的不同新字符串替换不同的字符串

  • 772

我有

\title{A64L(3)}
somethings
\textbf{a64l}()
\title{MALLOC(3)}
somethings
\textbf{malloc}()  

我想

\title{\hypertarget{a64l}{A64L(3)}}
somethings
\textbf{\hyperlink{a64l}{a64l}}()
\title{\hypertarget{malloc}{MALLOC(3)}}
somethings
\textbf{\hyperlink{malloc}{malloc}}()  

或者

\title{\hypertarget{a64l}{A64L}(3)}
somethings
\textbf{\hyperlink{a64l}{a64l}}()
\title{\hypertarget{malloc}{MALLOC}(3)}
somethings
\textbf{\hyperlink{malloc}{malloc}}()

这些是示例文件。可以有任何东西来代替A64Land MALLOC,但遵循模式(例如\title{new_word})。

我必须这样做才能获得描述的功能https://tex.stackexchange.com/questions/407884/how-to-make-a-title-as-link-target
我更喜欢vim, sed, awk.

您的答案也应该适用于以下 -

\documentclass[]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[utf8]{inputenc}
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
    \usepackage{xltxtra,xunicode}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \newcommand{\euro}{€}
\fi
% use microtype if available
\IfFileExists{microtype.sty}{\usepackage{microtype}}{}
\usepackage{longtable,booktabs}
\ifxetex
  \usepackage[setpagesize=false, % page size defined by xetex
              unicode=false, % unicode breaks when used with xetex
              xetex]{hyperref}
\else
  \usepackage[unicode=true]{hyperref}
\fi
\hypersetup{breaklinks=true,
            bookmarks=true,
            pdfauthor={},
            pdftitle={A64L(3)},
            colorlinks=true,
            citecolor=blue,
            urlcolor=blue,
            linkcolor=magenta,
            pdfborder={0 0 0}}
\urlstyle{same}  % don't use monospace font for urls
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\setcounter{secnumdepth}{0}
\usepackage{pagecolor}

% Set background colour (of the page)
\definecolor{weirdbgcolor}{HTML}{FCF4F0}
\pagecolor{weirdbgcolor}

% Make bold text appear in a particular colour
\definecolor{boldcolor}{HTML}{6E0002}
\let\realtextbf=\textbf
\renewcommand{\textbf}[1]{\textcolor{boldcolor}{\realtextbf{#1}}}

% Use underlines instead of emphasis (ugh)
\renewcommand{\emph}[1]{\underline{#1}}
\hypersetup{breaklinks=false}

% % Use fixed-width font by default
% \renewcommand*\familydefault{\ttdefault}

\title{A64L(3)}
\author{}
\date{}

\begin{document}
\maketitle

\begin{longtable}[c]{@{}lll@{}}
\toprule\addlinespace
A64L(3) & Linux Programmer's Manual & A64L(3)
\\\addlinespace
\bottomrule
\end{longtable}

\hyperdef{}{NAME}{\section{\hyperref[NAME]{NAME}}\label{NAME}}

a64l, l64a - convert between long and base-64

\hyperdef{}{SYNOPSIS}{\section{\hyperref[SYNOPSIS]{SYNOPSIS}}\label{SYNOPSIS}}

\textbf{\#include \textless{}stdlib.h\textgreater{}}

~

\textbf{long a64l(char *}\emph{str64}\textbf{);}

~

\textbf{char *l64a(long}\emph{value}\textbf{);}

~

Feature Test Macro Requirements for glibc (see
\textbf{feature\_test\_macros}(7)): \\

~

\textbf{a64l}(), \textbf{l64a}():

~

\_SVID\_SOURCE \textbar{}\textbar{} \_XOPEN\_SOURCE~\textgreater{}=~500
\textbar{}\textbar{} \_XOPEN\_SOURCE~\&\&~\_XOPEN\_SOURCE\_EXTENDED

\hyperdef{}{DESCRIPTION}{\section{\hyperref[DESCRIPTION]{DESCRIPTION}}\label{DESCRIPTION}}

These functions provide a conversion between 32-bit long integers and
little-endian base-64 ASCII strings (of length zero to six). If the
string used as argument for \textbf{a64l}() has length greater than six,
only the first six bytes are used. If the type \emph{long} has more than
32 bits, then \textbf{l64a}() uses only the low order 32 bits of
\emph{value}, and \textbf{a64l}() sign-extends its 32-bit result.

The 64 digits in the base-64 system are:

\begin{verbatim}

'.' represents a 0
'/' represents a 1
0-9 represent  2-11
A-Z represent 12-37
a-z represent 38-63
\end{verbatim}

So 123 = 59*64\^{}0 + 1*64\^{}1 = ``v/''.

\hyperdef{}{ATTRIBUTES}{\section{\hyperref[ATTRIBUTES]{ATTRIBUTES}}\label{ATTRIBUTES}}

\hyperdef{}{Multithreadingux5fux28seeux5fpthreadsux287ux29ux29}{\subsection{\hyperref[Multithreadingux5fux28seeux5fpthreadsux287ux29ux29]{Multithreading
(see
pthreads(7))}}\label{Multithreadingux5fux28seeux5fpthreadsux287ux29ux29}}

The \textbf{l64a}() function is not thread-safe.

The \textbf{a64l}() function is thread-safe.

\hyperdef{}{CONFORMINGux5fTO}{\section{\hyperref[CONFORMINGux5fTO]{CONFORMING
TO}}\label{CONFORMINGux5fTO}}

POSIX.1-2001.

\hyperdef{}{NOTES}{\section{\hyperref[NOTES]{NOTES}}\label{NOTES}}

The value returned by \textbf{l64a}() may be a pointer to a static
buffer, possibly overwritten by later calls.

The behavior of \textbf{l64a}() is undefined when \emph{value} is
negative. If \emph{value} is zero, it returns an empty string.

These functions are broken in glibc before 2.2.5 (puts most significant
digit first).

This is not the encoding used by \textbf{uuencode}(1).

\hyperdef{}{SEEux5fALSO}{\section{\hyperref[SEEux5fALSO]{SEE
ALSO}}\label{SEEux5fALSO}}

\textbf{uuencode}(1), \textbf{strtoul}(3)

\hyperdef{}{COLOPHON}{\section{\hyperref[COLOPHON]{COLOPHON}}\label{COLOPHON}}

This page is part of release 3.54 of the Linux \emph{man-pages} project.
A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.

\begin{longtable}[c]{@{}ll@{}}
\toprule\addlinespace
2013-06-21 &
\\\addlinespace
\bottomrule
\end{longtable}
\end{document}

编辑

由于没有答案完全符合要求,因此我对问题进行了更改。这种变化也给了我相同的结果,但方式不同。

主要是,我想将所有粗体文本与同一个单词的标题链接起来。
例如,在我得到的地方,\textbf{malloc}我想与\title{MALLOC(3)}和\textbf{a64l}建立链接\title{A64L(3)}。

现在,我制作了一个index包含标题词的文件。
文件索引

MALLOC(3)
A64L(3)  

或者

 MALLOC
 A64L

或者

 malloc
 a64l

我想使用index文件修改主文件比以前的方法更容易。
伪代码

while read word
do
l_word=${word,,}
echo $l_word
sed -e 's/\\title{$word\(3\)}/\\title{\\hypertarget{$word}{$word\(3\)}}/' -e 's/\\textbf{$l_word}/\\textbf{\\hyperlink{$word}{$l_word}}/' inputfile > output.tex
done < index

[这段代码有一些错误,我无法检测到]

awk text-processing
  • 2 2 个回答
  • 243 Views

2 个回答

  • Voted
  1. Praveen Kumar BS
    2017-12-29T20:56:23+08:002017-12-29T20:56:23+08:00

    我想下面的作品请检查和更新。经过对一些数据的测试,它对我有用

    sed "/title/s/{.*/{\hypertarget{&&/g" filename | sed -e "/title/s/A64/a64/1" -e "/title/s/MALLOC/malloc/1" | sed "/textbf/s/{.*}/{\hyperlink&&/g"| sed "s/{\{2\}/{/1"  | sed "s/(3)//1"
    
    • 1
  2. Best Answer
    alhelal
    2017-12-30T08:21:55+08:002017-12-30T08:21:55+08:00
    #!/bin/bash
    while read word
    do
    l_word=${word,,}
    sed -e s/\\\\title{$word\(3\)}/\\\\title{\\\\hypertarget{$word}{$word\(3\)}}/g -e s/\\\\textbf{$l_word}/\\\\textbf{\\\\hyperlink{$word}{$l_word}}/g inputfile > output.tex
    done < index  
    

    虽然,这是可行的,但它可以在没有我无法制作的正则表达式的索引文件的情况下完成。

    • 0

相关问题

  • 重新排列字母并比较两个单词

  • 在awk中的两行之间减去相同的列

  • 多行文件洗牌

  • 如何更改字符大小写(从小到大,反之亦然)?同时[重复]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    JSON数组使用jq来bash变量

    • 4 个回答
  • Marko Smith

    日期可以为 GMT 时区格式化当前时间吗?[复制]

    • 2 个回答
  • Marko Smith

    bash + 通过 bash 脚本从文件中读取变量和值

    • 4 个回答
  • Marko Smith

    如何复制目录并在同一命令中重命名它?

    • 4 个回答
  • Marko Smith

    ssh 连接。X11 连接因身份验证错误而被拒绝

    • 3 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Marko Smith

    systemctl 命令在 RHEL 6 中不起作用

    • 3 个回答
  • Marko Smith

    rsync 端口 22 和 873 使用

    • 2 个回答
  • Marko Smith

    以 100% 的利用率捕捉 /dev/loop -- 没有可用空间

    • 1 个回答
  • Marko Smith

    jq 打印子对象中所有的键和值

    • 2 个回答
  • Martin Hope
    EHerman JSON数组使用jq来bash变量 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux 日期可以为 GMT 时区格式化当前时间吗?[复制] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC 如何复制目录并在同一命令中重命名它? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve “root”用户的文件权限如何工作? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey 如何下载软件包而不是使用 apt-get 命令安装它? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao 为什么目录 /home、/usr、/var 等都具有相同的 inode 编号 (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg —list-keys 命令在将私钥导入全新安装后输出 uid [未知] 2017-11-26 18:26:02 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve