我正在尝试创建一个shell脚本,它读取下面的输入文件,并将每行索引2到4处的数字附加到每行索引8到10处。
输入文件(input.txt)
1234567
1278980
54279输出文件:(请注意,每行位置2-4的数字已附加到同一行的8-10位置) Output.txt
1234567234
1278980278
54279 427我当前的代码如下所示。在这段代码中,我只能提取每行索引2到4处的数字,但不能将其附加到同一文件中每行的索引8到10。
awk '{val=substr($0,2,3)} (val+0)>=0 {print $0}' input.txt > filtered_digits.txt有人可以帮助我在相同的脚本代码中实现这一点吗?
感谢所有人。
发布于 2020-09-16 03:33:11
它只是:
awk '{val=substr($0,2,3)} {print $0 val}'
awk '{print $0 substr($0,2,3)}'
# even just (with nonempty input):
awk '$0 = $0 substr($0,2,3)'或者使用sed:
sed 's/\(..\(...\)..\)/\1\2/',但是如果我有一行只有4个字符
您可以将$0与最多7个空格左对齐:
awk '$0 = sprintf("%-7s", $0) substr($0,2,3)'发布于 2020-09-16 04:43:32
当您想格式化您的输出时,如
printf "%-7s%s\n" 12345 123
12345 123您可以使用
sed -r 's/.(..).*/printf "%-7s%s\n" "&" "\1"/e' input.txthttps://stackoverflow.com/questions/63908591
复制相似问题