假设我在一个名为letters.txt的文件中有以下文字:
ABCDEFGHIJKLMNOPQRST
我想将位置2-3 (BC)
复制到该行的末尾,如下所示:
ABCDEFGHIJKLMNOPQRSTBC
我试图用位置2-3加\ n替换\ n但是它不起作用。示例:
sed -r "~ s/\n/\^(.{1})(.{2})\n/" letters.txt > letters_new.txt
我怎么能用bash做到这一点?我已经找到了答案但找不到任何答案。
答案 0 :(得分:2)
TEXT=ABCDEFGHIJKLMNOPQRSTBC
echo $TEXT${TEXT:1:2}
bash的秘诀在Advanced Bash-Scripting Guide中描述,这是String section。
答案 1 :(得分:0)
如果awk被你接受,那么一个非常短的单行可以完成这项工作:
kent$ echo "ABCDEFGHIJKLMNOPQRST"|awk 'BEGIN{FS=""}$0=$0$2$3'
ABCDEFGHIJKLMNOPQRSTBC
答案 2 :(得分:0)
这可能对您有用:
echo "ABCDEFGHIJKLMNOPQRST" | sed 's/.\{1\}\(.\{2\}\).*/&\1/'
ABCDEFGHIJKLMNOPQRSTBC
或更简单:
echo "ABCDEFGHIJKLMNOPQRST" | sed 's/.\(..\).*/&\1/'
ABCDEFGHIJKLMNOPQRSTBC