![在一行上生成重复的字符串](https://linux22.com/image/217253/%E5%9C%A8%E4%B8%80%E8%A1%8C%E4%B8%8A%E7%94%9F%E6%88%90%E9%87%8D%E5%A4%8D%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我有一个包含数百行的文件。以下是 3 行示例。
"A",
"B",
"C",
(引号实际上就在那里。)
我想使用 Linux 实用程序来更改行并在每行上复制原始字符串。例如:
FixedString1 A FixedString2 A
FixedString1 B FixedString2 B
FixedString1 C FixedString2 C
谢谢。
答案1
像这样
- 和sed:
$ sed -E 's/^"([A-Z]+)",/FixedString1 \1 FixedString2 \1/' file
FixedString1 A FixedString2 A
FixedString1 B FixedString2 B
FixedString1 C FixedString2 C
- 和awk:
$ awk -F'"' '{print "FixedString1 " $2 " FixedString2 " $2}' file
FixedString1 A FixedString2 A
FixedString1 B FixedString2 B
FixedString1 C FixedString2 C
- 和珀尔:
$ perl -F'"' -nE 'say "FixedString1 $F[1] FixedString2 $F[1]"' file
FixedString1 A FixedString2 A
FixedString1 B FixedString2 B
FixedString1 C FixedString2 C
- 和巴什:
while IFS='"' read -r _ x _; do echo "FixedString1 $x FixedString2 $x"; done < file
FixedString1 A FixedString2 A
FixedString1 B FixedString2 B
FixedString1 C FixedString2 C