我想有以下序列: OW HW1 HW2 在输出文件中重复 3000 次,例如:
OW
HW1
HW2
.
.
.
OW
HW1
HW2
Run Code Online (Sandbox Code Playgroud)
我相信我可以通过使用 bash,将 OW、HW1 和 HW2 设置为自变量,然后进行 3000 次 do 循环并在输出文件中打印值。
我知道如何替换特定行中的字符串,例如:
sed -i "<line number>s/<old string>/<new string>/g" <file name>
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何从多行替换字符串,例如从行号 1 然后 10 然后 100
我想从文件中删除字符“[”。我试过
sed -i 's/[//g' 'filename'
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误
sed:-e 表达式 #1,字符 6:未终止的 `s' 命令
我有一个看起来像这样的文件
18DMA H 9996 0.886 5.687 5.320
18DMA H 9997 1.019 5.764 5.247
18DMA Np 9998 0.947 5.584 5.151
18DMA H 9999 1.033 5.541 5.113
18DMA Cn10000 0.880 5.674 5.050
18DMA H10001 0.831 5.616 4.971
18DMA H10002 0.814 5.751 5.091
18DMA H10003 0.957 5.735 5.003
18DMA Cn10004 0.837 5.486 5.185
Run Code Online (Sandbox Code Playgroud)
期望的输出是删除第 3 列,但是因为从某个行/行开始,接下来原子名称和编号之间没有空格,我无法按列进行删除。有没有办法通过选择一定数量的字符来进行删除?欲望输出应该是
18DMA H 0.886 5.687 5.320
18DMA H 1.019 5.764 5.247
18DMA Np 0.947 5.584 5.151
18DMA H 1.033 5.541 5.113
18DMA Cn 0.880 5.674 5.050
18DMA H …
Run Code Online (Sandbox Code Playgroud) 我想要以下输出
r 1
r 2
r 3
.
.
.
r 100
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过 printf "%s\n" "r {1..100..1}"
如何从包含字符“H”的文件中删除行?该文件包含以下列:
H1
N1
H2
C1
H3
H4
C2
H5
H6
N2
H7
C3
H8
H9
C4
H10
H11
N3
H12
C5
H13
H14
C6
H15
H16
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
N1
C1
C2
N2
C3
C4
N3
C5
C6
Run Code Online (Sandbox Code Playgroud)