m00*_*4yu 3 command-line sed text-processing command
我想改变一个文本文件。假设我在第 22 行有一些文本,我想将第 22 行设为空白并将第 22 行的文本向下移动到第 23 行。为了说明这一点,我想把这个 ( printf 'Some %d text\n' {1..23}):
Some 1 text
Some 2 text
Some 3 text
Some 4 text
Some 5 text
Some 6 text
Some 7 text
Some 8 text
Some 9 text
Some 10 text
Some 11 text
Some 12 text
Some 13 text
Some 14 text
Some 15 text
Some 16 text
Some 17 text
Some 18 text
Some 19 text
Some 20 text
Some 21 text
Some 22 text
Some 23 text
Run Code Online (Sandbox Code Playgroud)
进入这个:
Some 1 text
Some 2 text
Some 3 text
Some 4 text
Some 5 text
Some 6 text
Some 7 text
Some 8 text
Some 9 text
Some 10 text
Some 11 text
Some 12 text
Some 13 text
Some 14 text
Some 15 text
Some 16 text
Some 17 text
Some 18 text
Some 19 text
Some 20 text
Some 21 text
Some 22 text
Some 23 text
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
sed -i '21 a\
' yourfile
Run Code Online (Sandbox Code Playgroud)
21 是第 1 行上的前一个行号完整示例,在第 1 行后附加 (a) 空行:
francois@zaphod:~$ cat toto
Some text
Some more text
Some other text
francois@zaphod:~$ sed -i '1 a\
' toto
francois@zaphod:~$ cat toto
Some text
Some more text
Some other text
francois@zaphod:~$
Run Code Online (Sandbox Code Playgroud)
然后文件长 4 行(包括空白行)